@praxisui/ai 8.0.0-beta.6 → 8.0.0-beta.61

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.
@@ -18,8 +18,9 @@ declare class PraxisAi {
18
18
  * Do not edit manually. Run praxis-config-starter/tools/contracts/generate-ai-contract-bindings.js.
19
19
  */
20
20
  declare const AI_CONTRACT_VERSION: "v1.1";
21
- declare const AI_CONTRACT_SCHEMA_HASH: "922e6d48637e64b403562d6d7cb833ed4942ffb0b452ec3573255871f4ec8739";
21
+ declare const AI_CONTRACT_SCHEMA_HASH: "41767dafdf6ebea802c083d77187ad6612937d6831188938dc21adce384b57a2";
22
22
  declare const AI_STREAM_EVENT_SCHEMA_VERSION: "v1";
23
+ declare const AI_DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION: "praxis.ai.context-hints.domain-catalog/v0.2";
23
24
  declare const AI_STREAM_EVENT_TYPES: readonly ["status", "thought.step", "heartbeat", "result", "error", "cancelled"];
24
25
  type AiJsonPrimitive = string | number | boolean | null;
25
26
  type AiJsonArray = AiJsonValue[];
@@ -27,6 +28,41 @@ interface AiJsonObject {
27
28
  [key: string]: AiJsonValue;
28
29
  }
29
30
  type AiJsonValue = AiJsonPrimitive | AiJsonObject | AiJsonArray;
31
+ type AiDomainCatalogContextHintItemType = 'context' | 'node' | 'edge' | 'binding' | 'evidence' | 'governance' | 'vocabulary' | 'relationship';
32
+ type AiDomainCatalogContextHintIntent = 'authoring' | 'explain' | 'validate' | 'ai-access-control';
33
+ type AiDomainCatalogRecommendedAuthoringFlow = 'shared_rule_authoring' | 'component_authoring' | 'ui_composition_authoring';
34
+ type AiDomainCatalogRecommendedRuleType = 'privacy' | 'compliance' | 'validation' | 'selection_eligibility' | 'workflow_action_policy' | 'approval_policy' | string;
35
+ interface AiDomainCatalogRelationshipHintContract {
36
+ enabled?: boolean;
37
+ federated?: boolean;
38
+ serviceKey?: string | null;
39
+ sourceNodeKey?: string | null;
40
+ targetNodeKey?: string | null;
41
+ edgeType?: string | null;
42
+ query?: string | null;
43
+ limit?: number;
44
+ }
45
+ interface AiDomainCatalogContextHintContract {
46
+ schemaVersion?: typeof AI_DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION;
47
+ serviceKey?: string;
48
+ resourceKey?: string | null;
49
+ releaseId?: string | null;
50
+ releaseKey?: string | null;
51
+ type?: AiDomainCatalogContextHintItemType;
52
+ itemTypes?: AiDomainCatalogContextHintItemType[];
53
+ intent?: AiDomainCatalogContextHintIntent | null;
54
+ query?: string | null;
55
+ contextKey?: string | null;
56
+ nodeType?: string | null;
57
+ recommendedAuthoringFlow?: AiDomainCatalogRecommendedAuthoringFlow | null;
58
+ recommendedRuleType?: AiDomainCatalogRecommendedRuleType | null;
59
+ limit?: number;
60
+ relationships?: AiDomainCatalogRelationshipHintContract | null;
61
+ }
62
+ interface AiContextHintsContract {
63
+ domainCatalog?: AiDomainCatalogContextHintContract;
64
+ [key: string]: AiJsonValue | AiDomainCatalogContextHintContract | undefined;
65
+ }
30
66
  interface AiSchemaContextContract {
31
67
  path?: string | null;
32
68
  operation?: string | null;
@@ -64,7 +100,7 @@ interface AiOrchestratorRequestContract {
64
100
  schemaFields?: AiJsonObject[] | null;
65
101
  runtimeState?: AiJsonObject | null;
66
102
  suggestedPatch?: AiJsonObject | null;
67
- contextHints?: AiJsonObject | null;
103
+ contextHints?: AiContextHintsContract | null;
68
104
  aiMode?: string;
69
105
  requireSchema?: boolean;
70
106
  resourcePath?: string;
@@ -75,6 +111,7 @@ interface AiOrchestratorRequestContract {
75
111
  apiMethod?: string;
76
112
  apiTags?: string;
77
113
  apiSearchLimit?: number;
114
+ observationId?: string;
78
115
  }
79
116
  type AiOrchestratorResponseType = 'patch' | 'clarification' | 'error' | 'info';
80
117
  interface AiPatchDiffContract {
@@ -86,7 +123,7 @@ interface AiOptionContract {
86
123
  value?: string | null;
87
124
  label?: string | null;
88
125
  example?: string | null;
89
- contextHints?: AiJsonObject | null;
126
+ contextHints?: AiContextHintsContract | null;
90
127
  }
91
128
  interface AiClarificationUiContract {
92
129
  responseType?: 'text' | 'choice' | 'confirm' | 'mixed' | 'context';
@@ -121,6 +158,67 @@ interface AiOrchestratorResponseContract {
121
158
  providedValue?: AiJsonValue;
122
159
  allowedValues?: string[] | null;
123
160
  memory?: AiMemoryInfoContract;
161
+ observationId?: string | null;
162
+ }
163
+ type AiAssistantObservationFeedbackRating = 'positive' | 'negative' | 'inaccurate' | 'unsafe' | 'irrelevant' | 'incomplete';
164
+ interface AiAssistantObservationFeedbackRequestContract {
165
+ rating?: AiAssistantObservationFeedbackRating;
166
+ reasonCode?: string | null;
167
+ comment?: string | null;
168
+ }
169
+ interface AiAssistantObservationFeedbackResponseContract {
170
+ feedbackId?: string | null;
171
+ observationId?: string | null;
172
+ rating?: string | null;
173
+ reasonCode?: string | null;
174
+ commentPreview?: string | null;
175
+ createdAt?: string | null;
176
+ }
177
+ interface AiAssistantObservationResponseContract {
178
+ observationId?: string | null;
179
+ requestId?: string | null;
180
+ tenantId?: string | null;
181
+ environment?: string | null;
182
+ userId?: string | null;
183
+ surface?: string | null;
184
+ componentId?: string | null;
185
+ componentType?: string | null;
186
+ routeKey?: string | null;
187
+ variantId?: string | null;
188
+ schemaHash?: string | null;
189
+ contractVersion?: string | null;
190
+ sessionId?: string | null;
191
+ clientTurnId?: string | null;
192
+ threadId?: string | null;
193
+ turnId?: string | null;
194
+ streamId?: string | null;
195
+ promptHash?: string | null;
196
+ promptPreview?: string | null;
197
+ promptLength?: number | null;
198
+ admissionOutcome?: string | null;
199
+ terminalOutcome?: string | null;
200
+ qualityOutcome?: string | null;
201
+ errorCategory?: string | null;
202
+ errorCode?: string | null;
203
+ errorMessagePreview?: string | null;
204
+ provider?: string | null;
205
+ model?: string | null;
206
+ llmCallCount?: number | null;
207
+ latencyMs?: number | null;
208
+ createdAt?: string | null;
209
+ updatedAt?: string | null;
210
+ feedback?: AiAssistantObservationFeedbackResponseContract[];
211
+ }
212
+ interface AiAssistantObservationSummaryRowContract {
213
+ admissionOutcome?: string | null;
214
+ terminalOutcome?: string | null;
215
+ qualityOutcome?: string | null;
216
+ componentId?: string | null;
217
+ componentType?: string | null;
218
+ total?: number | null;
219
+ }
220
+ interface AiAssistantObservationSummaryResponseContract {
221
+ rows?: AiAssistantObservationSummaryRowContract[];
124
222
  }
125
223
  interface AgenticAuthoringConversationMessageContract {
126
224
  id?: string | null;
@@ -161,6 +259,7 @@ interface AgenticAuthoringIntentResolutionRequestContract extends AgenticAuthori
161
259
  provider?: string | null;
162
260
  model?: string | null;
163
261
  apiKey?: string | null;
262
+ contextHints?: AiContextHintsContract | null;
164
263
  }
165
264
  interface AgenticAuthoringCandidateContract {
166
265
  resourcePath?: string | null;
@@ -178,8 +277,83 @@ interface AgenticAuthoringQuickReplyContract {
178
277
  kind: string;
179
278
  label: string;
180
279
  prompt: string;
280
+ description?: string | null;
281
+ icon?: string | null;
282
+ tone?: string | null;
283
+ contextHints?: AiContextHintsContract | null;
284
+ [key: string]: AiJsonValue | AiContextHintsContract | undefined;
285
+ }
286
+ interface AgenticAuthoringSemanticSelectedResourceContract {
287
+ resourcePath?: string | null;
288
+ operation?: string | null;
289
+ schemaUrl?: string | null;
290
+ submitUrl?: string | null;
291
+ submitMethod?: string | null;
181
292
  [key: string]: AiJsonValue | undefined;
182
293
  }
294
+ interface AgenticAuthoringSemanticRetrievalEvidenceContract {
295
+ retrievalSource?: string | null;
296
+ evidence?: string[];
297
+ candidateCount?: number;
298
+ [key: string]: AiJsonValue | undefined;
299
+ }
300
+ interface AgenticAuthoringEvidenceBundleEvidenceContract {
301
+ source?: string | null;
302
+ kind?: string | null;
303
+ ref?: string | null;
304
+ summary?: string | null;
305
+ confidence?: number | null;
306
+ matchedTerms?: string[];
307
+ tenantId?: string | null;
308
+ environment?: string | null;
309
+ releaseId?: string | null;
310
+ [key: string]: AiJsonValue | undefined;
311
+ }
312
+ interface AgenticAuthoringEvidenceBundleContract {
313
+ schemaVersion?: string | null;
314
+ retrievalSource?: string | null;
315
+ evidence?: AgenticAuthoringEvidenceBundleEvidenceContract[];
316
+ evidenceCount?: number;
317
+ [key: string]: AiJsonValue | AgenticAuthoringEvidenceBundleEvidenceContract[] | undefined;
318
+ }
319
+ interface AgenticAuthoringSemanticRefinementContract {
320
+ schemaVersion?: string | null;
321
+ refinementKind?: 'visual_projection' | 'data_source' | 'filtering' | 'layout' | 'metric' | 'copy' | 'governance' | string | null;
322
+ preserve?: string[];
323
+ replace?: Record<string, string>;
324
+ add?: Record<string, string[]>;
325
+ remove?: string[];
326
+ rationale?: string | null;
327
+ confidence?: number | null;
328
+ [key: string]: AiJsonValue | Record<string, string> | Record<string, string[]> | undefined;
329
+ }
330
+ interface AgenticAuthoringSemanticDecisionContract {
331
+ schemaVersion?: string | null;
332
+ decisionId?: string | null;
333
+ operationKind?: string | null;
334
+ artifactKind?: string | null;
335
+ changeKind?: string | null;
336
+ selectedResource?: AgenticAuthoringSemanticSelectedResourceContract | null;
337
+ visualizationDecision?: AgenticAuthoringVisualizationDecisionContract | null;
338
+ retrievalEvidence?: AgenticAuthoringSemanticRetrievalEvidenceContract | null;
339
+ retrievedEvidence?: AgenticAuthoringEvidenceBundleContract | null;
340
+ reviewRequired?: boolean | null;
341
+ reviewReason?: string | null;
342
+ previousDecisionRef?: string | null;
343
+ refinementOf?: string | null;
344
+ conversationId?: string | null;
345
+ turnId?: string | null;
346
+ userGoal?: string | null;
347
+ activeObjective?: string | null;
348
+ artifactIntent?: string | null;
349
+ visualIntent?: string | null;
350
+ constraints?: AiJsonObject | null;
351
+ refinement?: AgenticAuthoringSemanticRefinementContract | null;
352
+ previousDecisionId?: string | null;
353
+ rationale?: string | null;
354
+ confidence?: number | null;
355
+ [key: string]: AiJsonValue | AgenticAuthoringSemanticSelectedResourceContract | AgenticAuthoringSemanticRetrievalEvidenceContract | AgenticAuthoringEvidenceBundleContract | AgenticAuthoringSemanticRefinementContract | AgenticAuthoringVisualizationDecisionContract | undefined;
356
+ }
183
357
  interface AgenticAuthoringIntentResolutionResultContract {
184
358
  valid?: boolean;
185
359
  operationKind?: string | null;
@@ -190,12 +364,61 @@ interface AgenticAuthoringIntentResolutionResultContract {
190
364
  gate?: AiJsonObject | null;
191
365
  effectivePrompt?: string | null;
192
366
  assistantMessage?: string | null;
367
+ assistantContent?: AiJsonObject | null;
193
368
  quickReplies?: AgenticAuthoringQuickReplyContract[];
194
369
  pendingClarification?: AgenticAuthoringPendingClarificationContract | null;
195
370
  clarificationQuestions?: string[];
196
371
  warnings?: string[];
197
372
  failureCodes?: string[];
198
- [key: string]: AiJsonValue | AgenticAuthoringCandidateContract | AgenticAuthoringCandidateContract[] | AgenticAuthoringQuickReplyContract | AgenticAuthoringQuickReplyContract[] | AgenticAuthoringPendingClarificationContract | undefined;
373
+ llmDiagnostics?: AiJsonObject | null;
374
+ semanticDecision?: AgenticAuthoringSemanticDecisionContract | null;
375
+ visualizationDecision?: AgenticAuthoringVisualizationDecisionContract | null;
376
+ [key: string]: AiJsonValue | AgenticAuthoringCandidateContract | AgenticAuthoringCandidateContract[] | AgenticAuthoringQuickReplyContract | AgenticAuthoringQuickReplyContract[] | AgenticAuthoringPendingClarificationContract | AgenticAuthoringSemanticDecisionContract | AgenticAuthoringVisualizationDecisionContract | undefined;
377
+ }
378
+ interface AgenticAuthoringVisualizationAxisDecisionContract {
379
+ concept?: string | null;
380
+ field?: string | null;
381
+ label?: string | null;
382
+ chartType?: string | null;
383
+ orientation?: string | null;
384
+ metricAggregation?: string | null;
385
+ metricField?: string | null;
386
+ metricLabel?: string | null;
387
+ provenance?: string | null;
388
+ [key: string]: AiJsonValue | undefined;
389
+ }
390
+ interface AgenticAuthoringVisualizationDecisionContract {
391
+ schemaVersion?: string | null;
392
+ intent?: string | null;
393
+ layoutKind?: string | null;
394
+ primaryComponent?: string | null;
395
+ axes?: AgenticAuthoringVisualizationAxisDecisionContract[];
396
+ includeSummary?: boolean | null;
397
+ includeDetailTable?: boolean | null;
398
+ excludedComponentIds?: string[];
399
+ includeFilters?: boolean | null;
400
+ includeKpis?: boolean | null;
401
+ provenance?: string | null;
402
+ [key: string]: AiJsonValue | AgenticAuthoringVisualizationAxisDecisionContract[] | string[] | undefined;
403
+ }
404
+ interface AgenticAuthoringResourceCandidatesRequestContract {
405
+ retrievalQuery?: string | null;
406
+ userPrompt?: string | null;
407
+ artifactKind?: string | null;
408
+ limit?: number | null;
409
+ [key: string]: AiJsonValue | undefined;
410
+ }
411
+ interface AgenticAuthoringResourceCandidatesResultContract {
412
+ valid?: boolean;
413
+ tool?: string | null;
414
+ retrievalQuery?: string | null;
415
+ artifactKind?: string | null;
416
+ assistantMessage?: string | null;
417
+ assistantContent?: AiJsonObject | null;
418
+ candidates?: AgenticAuthoringCandidateContract[];
419
+ quickReplies?: AgenticAuthoringQuickReplyContract[];
420
+ warnings?: string[];
421
+ [key: string]: AiJsonValue | AgenticAuthoringCandidateContract[] | AgenticAuthoringQuickReplyContract[] | undefined;
199
422
  }
200
423
  interface AgenticAuthoringPlanRequestContract extends AgenticAuthoringConversationContextContract {
201
424
  userPrompt: string;
@@ -204,6 +427,22 @@ interface AgenticAuthoringPlanRequestContract extends AgenticAuthoringConversati
204
427
  apiKey?: string | null;
205
428
  currentPage?: AiJsonObject | null;
206
429
  intentResolution?: AgenticAuthoringIntentResolutionResultContract | null;
430
+ contextHints?: AiContextHintsContract | null;
431
+ }
432
+ interface AgenticAuthoringTurnStreamRequestContract extends AgenticAuthoringConversationContextContract {
433
+ userPrompt: string;
434
+ targetApp?: string | null;
435
+ targetComponentId?: string | null;
436
+ currentRoute?: string | null;
437
+ currentPage?: AiJsonObject | null;
438
+ selectedWidgetKey?: string | null;
439
+ provider?: string | null;
440
+ model?: string | null;
441
+ apiKey?: string | null;
442
+ contextHints?: AiContextHintsContract | null;
443
+ componentCapabilities?: AgenticAuthoringComponentCapabilitiesResultContract | null;
444
+ activeSemanticDecision?: AgenticAuthoringSemanticDecisionContract | null;
445
+ [key: string]: AiJsonValue | AiContextHintsContract | AgenticAuthoringComponentCapabilitiesResultContract | AgenticAuthoringSemanticDecisionContract | AgenticAuthoringConversationMessageContract[] | AgenticAuthoringPendingClarificationContract | AgenticAuthoringAttachmentSummaryContract[] | undefined;
207
446
  }
208
447
  interface AgenticAuthoringPreviewResultContract {
209
448
  valid?: boolean;
@@ -218,19 +457,79 @@ interface AgenticAuthoringApplyRequestContract {
218
457
  componentType: string;
219
458
  componentId: string;
220
459
  scope?: string | null;
221
- payload: AiJsonObject;
460
+ compiledFormPatch: AiJsonObject;
222
461
  tags?: AiJsonObject | null;
223
- [key: string]: AiJsonValue | undefined;
462
+ semanticDecision: AgenticAuthoringSemanticDecisionContract;
463
+ [key: string]: AiJsonValue | AgenticAuthoringSemanticDecisionContract | undefined;
224
464
  }
225
465
  interface AgenticAuthoringApplyResultContract {
226
466
  applied?: boolean;
227
467
  etag?: string | null;
228
468
  [key: string]: AiJsonValue | undefined;
229
469
  }
470
+ interface AgenticAuthoringComponentFieldAliasContract {
471
+ field?: string | null;
472
+ aliases?: string[];
473
+ [key: string]: AiJsonValue | undefined;
474
+ }
475
+ interface AgenticAuthoringComponentCapabilityExampleContract {
476
+ prompt?: string | null;
477
+ intent?: string | null;
478
+ configHints?: string[];
479
+ [key: string]: AiJsonValue | undefined;
480
+ }
481
+ interface AgenticAuthoringComponentCapabilityContract {
482
+ id?: string | null;
483
+ changeKind?: string | null;
484
+ triggerTerms?: string[];
485
+ fieldAliases?: AgenticAuthoringComponentFieldAliasContract[];
486
+ examples?: AgenticAuthoringComponentCapabilityExampleContract[];
487
+ [key: string]: AiJsonValue | AgenticAuthoringComponentFieldAliasContract[] | AgenticAuthoringComponentCapabilityExampleContract[] | undefined;
488
+ }
489
+ interface AgenticAuthoringComponentCapabilityCatalogContract {
490
+ componentId?: string | null;
491
+ version?: string | null;
492
+ capabilities?: AgenticAuthoringComponentCapabilityContract[];
493
+ [key: string]: AiJsonValue | AgenticAuthoringComponentCapabilityContract[] | undefined;
494
+ }
230
495
  interface AgenticAuthoringComponentCapabilitiesResultContract {
231
496
  version?: string | null;
232
- catalogs?: AiJsonObject[];
233
- [key: string]: AiJsonValue | undefined;
497
+ catalogs?: AgenticAuthoringComponentCapabilityCatalogContract[];
498
+ [key: string]: AiJsonValue | AgenticAuthoringComponentCapabilityCatalogContract[] | undefined;
499
+ }
500
+ interface AgenticAuthoringManifestEditPlanRequestContract {
501
+ config?: AiJsonObject | null;
502
+ plan?: AiJsonObject | null;
503
+ validationContext?: AiJsonObject | null;
504
+ }
505
+ interface AgenticAuthoringResolveTargetRequestContract {
506
+ config?: AiJsonObject | null;
507
+ operationId?: string | null;
508
+ target?: AiJsonValue;
509
+ input?: AiJsonValue;
510
+ }
511
+ interface AgenticAuthoringResolvedTargetContract {
512
+ status?: string | null;
513
+ componentId?: string | null;
514
+ operationId?: string | null;
515
+ kind?: string | null;
516
+ resolver?: string | null;
517
+ path?: string | null;
518
+ value?: AiJsonValue;
519
+ candidates?: string[];
520
+ failures?: string[];
521
+ }
522
+ interface AgenticAuthoringManifestValidationResultContract {
523
+ valid?: boolean;
524
+ failures?: string[];
525
+ warnings?: string[];
526
+ normalizedPlan?: AiJsonObject | null;
527
+ }
528
+ interface AgenticAuthoringManifestCompileResultContract {
529
+ compiled?: boolean;
530
+ failures?: string[];
531
+ warnings?: string[];
532
+ patch?: AiJsonObject | null;
234
533
  }
235
534
  interface AiPatchStreamStartResponseContract {
236
535
  streamId: string;
@@ -239,9 +538,21 @@ interface AiPatchStreamStartResponseContract {
239
538
  eventSchemaVersion: string;
240
539
  streamAuthMode?: 'cookie' | 'signed_url_token' | null;
241
540
  streamAccessToken?: string | null;
541
+ observationId?: string | null;
242
542
  expiresAt: string;
243
543
  fallbackPatchUrl: string;
244
544
  }
545
+ interface AgenticAuthoringTurnStreamStartResponseContract {
546
+ streamId: string;
547
+ threadId: string;
548
+ turnId: string;
549
+ eventSchemaVersion: string;
550
+ streamAuthMode?: 'cookie' | 'signed_url_token' | null;
551
+ streamAccessToken?: string | null;
552
+ observationId?: string | null;
553
+ expiresAt: string;
554
+ fallbackAuthoringUrl: string;
555
+ }
245
556
  interface AiPatchStreamCancelResponseContract {
246
557
  streamId?: string | null;
247
558
  threadId?: string | null;
@@ -260,6 +571,8 @@ interface AiPatchStreamEnvelopeContract<TPayload extends AiJsonObject = AiJsonOb
260
571
  type: AiPatchStreamEventType$1;
261
572
  payload: TPayload;
262
573
  }
574
+ interface AgenticAuthoringTurnStreamEnvelopeContract<TPayload extends AiJsonObject = AiJsonObject> extends AiPatchStreamEnvelopeContract<TPayload> {
575
+ }
263
576
  interface ProblemResponseContract {
264
577
  timestamp?: string | null;
265
578
  status?: number | null;
@@ -270,6 +583,7 @@ interface ProblemResponseContract {
270
583
  [key: string]: AiJsonValue | undefined;
271
584
  }
272
585
  type AiPatchStreamEventType$1 = (typeof AI_STREAM_EVENT_TYPES)[number];
586
+ type AiTurnStreamEventType = (typeof AI_STREAM_EVENT_TYPES)[number];
273
587
 
274
588
  /**
275
589
  * Models for Praxis AI (Centralized)
@@ -282,7 +596,7 @@ interface AiRuleResponse {
282
596
  /** Descriptive name for the rule */
283
597
  ruleName: string;
284
598
  /** Type of target (scope) */
285
- targetType: 'field' | 'section' | 'action' | 'row' | 'column';
599
+ targetType: 'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock';
286
600
  /** IDs of the target elements */
287
601
  targetIds: string[];
288
602
  /** Canonical JSON Logic condition payload or null for always applied */
@@ -408,7 +722,119 @@ interface RulePropertyDefinition {
408
722
  }>;
409
723
  category?: 'content' | 'appearance' | 'behavior' | 'layout' | 'validation';
410
724
  }
411
- type RulePropertySchema = Record<'field' | 'section' | 'action' | 'row' | 'column', RulePropertyDefinition[]>;
725
+ type RulePropertySchema = Record<'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock', RulePropertyDefinition[]>;
726
+
727
+ type PraxisAssistantOwnerType = 'page-builder' | 'table' | 'dynamic-form' | 'manual-form' | 'list' | 'tabs' | 'stepper' | 'expansion' | 'app-shell' | 'custom';
728
+ type PraxisAssistantComponentType = 'page-builder' | 'table' | 'form' | 'list' | 'tabs' | 'stepper' | 'expansion' | 'widget' | 'custom';
729
+ type PraxisAssistantContextMode = 'config' | 'agentic-authoring' | 'chat' | 'diagnostic' | 'review' | 'inline-help';
730
+ type PraxisAssistantTargetKind = 'component' | 'field' | 'column' | 'row' | 'section' | 'widget' | 'canvas' | 'compositionLink' | 'action' | 'rule' | 'resource' | 'custom';
731
+ type PraxisAssistantAttachmentKind = 'file' | 'image' | 'json' | 'schema' | 'text' | 'url' | 'custom';
732
+ type PraxisAssistantActionKind = 'local-preview' | 'local-apply' | 'local-undo' | 'manifest-validate' | 'manifest-compile' | 'shared-rule-intake' | 'shared-rule-handoff' | 'governed-simulation-handoff' | 'governed-publication-handoff' | 'materialization-handoff' | 'enforcement-validation-handoff' | 'diagnose' | 'explain' | 'custom';
733
+ type PraxisAssistantRiskLevel = 'low' | 'medium' | 'high' | 'blocked';
734
+ interface PraxisAssistantIdentity {
735
+ sessionId: string;
736
+ ownerId: string;
737
+ ownerType: PraxisAssistantOwnerType | string;
738
+ componentId?: string;
739
+ componentType?: PraxisAssistantComponentType | string;
740
+ routeKey?: string;
741
+ tenantId?: string;
742
+ env?: string;
743
+ userId?: string;
744
+ }
745
+ interface PraxisAssistantTargetRef {
746
+ kind: PraxisAssistantTargetKind | string;
747
+ id: string;
748
+ label?: string;
749
+ path?: string;
750
+ schemaPath?: string;
751
+ metadata?: Readonly<Record<string, string | number | boolean>>;
752
+ }
753
+ interface PraxisAssistantContextItem {
754
+ id: string;
755
+ label: string;
756
+ value: string;
757
+ kind?: string;
758
+ tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger';
759
+ }
760
+ interface PraxisAssistantDigest {
761
+ label?: string;
762
+ summary?: string;
763
+ hash?: string;
764
+ source?: string;
765
+ fields?: readonly string[];
766
+ counts?: Readonly<Record<string, number>>;
767
+ }
768
+ interface PraxisAssistantAuthoringManifestRef {
769
+ componentId: string;
770
+ version?: string;
771
+ source?: string;
772
+ hash?: string;
773
+ }
774
+ interface PraxisAssistantCapabilityRef {
775
+ id: string;
776
+ label?: string;
777
+ source?: string;
778
+ risk?: PraxisAssistantRiskLevel;
779
+ }
780
+ interface PraxisAssistantGovernanceHint {
781
+ kind: string;
782
+ label?: string;
783
+ reason?: string;
784
+ target?: string;
785
+ risk?: PraxisAssistantRiskLevel;
786
+ }
787
+ interface PraxisAssistantAttachmentSummary {
788
+ id: string;
789
+ name: string;
790
+ kind: PraxisAssistantAttachmentKind | string;
791
+ mimeType?: string;
792
+ sizeBytes?: number;
793
+ source?: string;
794
+ hasPreview?: boolean;
795
+ }
796
+ interface PraxisAssistantActionContract {
797
+ id: string;
798
+ kind: PraxisAssistantActionKind | string;
799
+ label?: string;
800
+ target?: PraxisAssistantTargetRef;
801
+ capabilityRef?: string;
802
+ risk?: PraxisAssistantRiskLevel;
803
+ handoffEndpoint?: string;
804
+ description?: string;
805
+ }
806
+ interface PraxisAssistantContextSnapshot {
807
+ identity: PraxisAssistantIdentity;
808
+ target?: PraxisAssistantTargetRef;
809
+ contextItems: readonly PraxisAssistantContextItem[];
810
+ mode: PraxisAssistantContextMode;
811
+ authoringManifestRef?: PraxisAssistantAuthoringManifestRef;
812
+ resourcePath?: string;
813
+ schemaFields?: readonly string[];
814
+ dataProfileDigest?: PraxisAssistantDigest;
815
+ runtimeStateDigest?: PraxisAssistantDigest;
816
+ capabilityRefs?: readonly PraxisAssistantCapabilityRef[];
817
+ governanceHints?: readonly PraxisAssistantGovernanceHint[];
818
+ riskHints?: readonly PraxisAssistantGovernanceHint[];
819
+ attachmentSummaries?: readonly PraxisAssistantAttachmentSummary[];
820
+ actions?: readonly PraxisAssistantActionContract[];
821
+ }
822
+ interface PraxisAssistantOpenRequest {
823
+ initialPrompt?: string;
824
+ target?: PraxisAssistantTargetRef;
825
+ mode?: PraxisAssistantContextMode;
826
+ visibility?: 'active' | 'minimized';
827
+ contextHints?: Readonly<Record<string, string | number | boolean>>;
828
+ preferredAction?: PraxisAssistantActionContract;
829
+ selection?: PraxisAssistantTargetRef;
830
+ }
831
+ declare const PRAXIS_ASSISTANT_CONTEXT_TEXT_LIMIT = 160;
832
+ declare const PRAXIS_ASSISTANT_CONTEXT_ITEM_LIMIT = 12;
833
+ declare const PRAXIS_ASSISTANT_CONTEXT_SCHEMA_FIELD_LIMIT = 40;
834
+ declare const PRAXIS_ASSISTANT_CONTEXT_ATTACHMENT_LIMIT = 8;
835
+ declare function sanitizePraxisAssistantText(value: unknown, limit?: number): string;
836
+ declare function normalizePraxisAssistantAttachmentSummary(attachment: unknown): PraxisAssistantAttachmentSummary | null;
837
+ declare function normalizePraxisAssistantContextSnapshot(value: unknown): PraxisAssistantContextSnapshot;
412
838
 
413
839
  type PraxisAssistantShellMessageRole = 'user' | 'assistant' | 'system' | 'status' | 'error';
414
840
  type PraxisAssistantShellMode = 'config' | 'agentic-authoring' | 'chat' | 'diagnostic' | 'review' | 'inline-help';
@@ -420,20 +846,68 @@ interface PraxisAssistantShellMessage {
420
846
  status?: 'pending' | 'done' | 'error';
421
847
  editable?: boolean;
422
848
  resendable?: boolean;
849
+ observationId?: string | null;
423
850
  actions?: readonly PraxisAssistantShellMessageAction[];
424
851
  }
425
852
  interface PraxisAssistantShellQuickReply {
426
853
  id: string;
427
854
  label: string;
428
855
  prompt: string;
856
+ value?: unknown;
429
857
  kind?: string;
858
+ description?: string | null;
859
+ icon?: string | null;
860
+ tone?: string | null;
861
+ presentation?: PraxisAssistantShellQuickReplyPresentation | null;
862
+ contextHints?: Readonly<Record<string, unknown>> | null;
863
+ canonicalAction?: Readonly<Record<string, unknown>> | null;
864
+ semanticDecision?: Readonly<Record<string, unknown>> | null;
865
+ }
866
+ type PraxisAssistantShellQuickReplyPresentationKind = 'resource-candidate' | 'contextual-action' | 'governance-confirmation' | 'guided-option' | string;
867
+ interface PraxisAssistantShellQuickReplyPresentation {
868
+ kind?: PraxisAssistantShellQuickReplyPresentationKind | null;
869
+ categoryLabel?: string | null;
870
+ description?: string | null;
871
+ ctaLabel?: string | null;
872
+ icon?: string | null;
873
+ tone?: string | null;
874
+ technicalDetails?: string | null;
875
+ evidence?: readonly PraxisAssistantShellQuickReplyEvidence[];
876
+ items?: readonly PraxisAssistantShellQuickReplyPresentationItem[];
877
+ }
878
+ interface PraxisAssistantShellQuickReplyEvidence {
879
+ icon?: string | null;
880
+ value: string;
881
+ ariaLabel?: string | null;
882
+ }
883
+ interface PraxisAssistantShellQuickReplyPresentationItem {
884
+ key?: 'bestFor' | 'returns' | 'nextStep' | string;
885
+ label: string;
886
+ value: string;
887
+ icon?: string | null;
430
888
  }
431
889
  interface PraxisAssistantShellMessageAction {
432
890
  id: string;
433
891
  label: string;
434
892
  kind?: 'edit' | 'resend' | 'copy' | 'custom' | string;
893
+ icon?: string | null;
894
+ ariaLabel?: string | null;
895
+ iconOnly?: boolean;
435
896
  disabled?: boolean;
436
897
  }
898
+ type PraxisAssistantShellActionTone = 'primary' | 'secondary' | 'governance' | 'success' | 'warning' | 'danger' | 'neutral' | string;
899
+ interface PraxisAssistantShellAction {
900
+ id: string;
901
+ label: string;
902
+ kind?: 'submit-prompt' | 'apply' | 'retry' | 'cancel' | 'simulate' | 'review' | 'publish' | 'materialize' | 'correct' | 'custom' | string;
903
+ icon?: string | null;
904
+ tone?: PraxisAssistantShellActionTone | null;
905
+ disabled?: boolean;
906
+ requiresPrompt?: boolean;
907
+ testId?: string | null;
908
+ ariaLabel?: string | null;
909
+ iconOnly?: boolean;
910
+ }
437
911
  interface PraxisAssistantShellContextItem {
438
912
  id: string;
439
913
  label: string;
@@ -459,6 +933,13 @@ interface PraxisAssistantShellLayout {
459
933
  width: number;
460
934
  height: number;
461
935
  }
936
+ interface PraxisAssistantViewportLayoutOptions {
937
+ width?: number;
938
+ height?: number;
939
+ top?: number;
940
+ margin?: number;
941
+ }
942
+ declare function createPraxisAssistantViewportLayout(options?: PraxisAssistantViewportLayoutOptions): PraxisAssistantShellLayout;
462
943
  interface PraxisAssistantShellLabels {
463
944
  title: string;
464
945
  subtitle?: string;
@@ -470,14 +951,19 @@ interface PraxisAssistantShellLabels {
470
951
  apply: string;
471
952
  conversationAria: string;
472
953
  quickRepliesAria: string;
954
+ quickReplyDetails?: string;
473
955
  dragHandleAria: string;
474
956
  resizeHandleAria: string;
957
+ resetLayout?: string;
475
958
  contextAria: string;
476
959
  attachmentsAria: string;
477
960
  attach: string;
478
961
  removeAttachment: string;
479
962
  editMessage: string;
480
963
  resendMessage: string;
964
+ feedbackPositive: string;
965
+ feedbackNegative: string;
966
+ feedbackSubmitted: string;
481
967
  modeConfig: string;
482
968
  modeAgenticAuthoring: string;
483
969
  modeChat: string;
@@ -501,7 +987,11 @@ interface PraxisAssistantClarificationOption {
501
987
  label: string;
502
988
  value: string;
503
989
  description?: string;
990
+ displayPrompt?: string;
991
+ example?: string;
504
992
  contextHints?: Record<string, unknown>;
993
+ canonicalAction?: Record<string, unknown>;
994
+ semanticDecision?: Record<string, unknown>;
505
995
  }
506
996
  interface PraxisAssistantClarificationQuestion {
507
997
  id: string;
@@ -516,6 +1006,7 @@ interface PraxisAssistantTurnAction {
516
1006
  kind: 'submit' | 'clarify' | 'apply' | 'cancel' | 'retry' | 'edit-message' | 'resend-message' | 'attach' | 'remove-attachment' | string;
517
1007
  id?: string;
518
1008
  value?: unknown;
1009
+ displayPrompt?: string;
519
1010
  contextHints?: Record<string, unknown>;
520
1011
  }
521
1012
  interface PraxisAssistantPendingClarification {
@@ -524,7 +1015,15 @@ interface PraxisAssistantPendingClarification {
524
1015
  assistantMessage?: string;
525
1016
  clientTurnId?: string;
526
1017
  diagnostics?: Record<string, unknown>;
1018
+ observationId?: string | null;
527
1019
  }
1020
+ type PraxisAssistantConversationMessageRole = 'user' | 'assistant' | 'system';
1021
+ interface PraxisAssistantConversationMessage {
1022
+ id: string;
1023
+ role: PraxisAssistantConversationMessageRole;
1024
+ text: string;
1025
+ }
1026
+ declare function toPraxisAssistantConversationMessages(messages: readonly PraxisAssistantShellMessage[], limit?: number): PraxisAssistantConversationMessage[];
528
1027
  interface PraxisAssistantTurnRequest {
529
1028
  mode: PraxisAssistantShellMode;
530
1029
  phase?: PraxisAssistantTurnPhase;
@@ -545,6 +1044,8 @@ interface PraxisAssistantTurnRequest {
545
1044
  preview?: unknown;
546
1045
  pendingPatch?: unknown;
547
1046
  pendingClarification?: PraxisAssistantPendingClarification;
1047
+ diagnostics?: Record<string, unknown>;
1048
+ observationId?: string | null;
548
1049
  }
549
1050
  interface PraxisAssistantTurnResult {
550
1051
  state: PraxisAssistantShellState;
@@ -564,6 +1065,7 @@ interface PraxisAssistantTurnResult {
564
1065
  sessionId?: string;
565
1066
  clientTurnId?: string;
566
1067
  diagnostics?: Record<string, unknown>;
1068
+ observationId?: string | null;
567
1069
  }
568
1070
  interface PraxisAssistantTurnViewState {
569
1071
  mode: PraxisAssistantShellMode;
@@ -583,6 +1085,7 @@ interface PraxisAssistantTurnViewState {
583
1085
  pendingPatch?: unknown;
584
1086
  pendingClarification?: PraxisAssistantPendingClarification;
585
1087
  diagnostics?: Record<string, unknown>;
1088
+ observationId?: string | null;
586
1089
  }
587
1090
  interface PraxisAssistantTurnFlow {
588
1091
  readonly mode: PraxisAssistantShellMode;
@@ -617,6 +1120,31 @@ interface AiResponseCompileResult {
617
1120
  message?: string;
618
1121
  warnings?: string[];
619
1122
  }
1123
+ type AiAuthoringResponseModeKind = 'consult' | 'edit' | string;
1124
+ interface AiAuthoringResponseMode {
1125
+ kind: AiAuthoringResponseModeKind;
1126
+ operationKind?: 'consult' | 'author' | 'edit' | string;
1127
+ changeKind?: 'answer' | string;
1128
+ preferredResponse?: string;
1129
+ useWhen?: string[];
1130
+ rules?: string[];
1131
+ }
1132
+ interface AiConsultativeAuthoringContext {
1133
+ [key: string]: unknown;
1134
+ resourcePath?: string | null;
1135
+ answerableQuestionKinds?: string[];
1136
+ }
1137
+ interface AiComponentAuthoringContract {
1138
+ [key: string]: unknown;
1139
+ kind: 'praxis.component-authoring-context' | string;
1140
+ componentId?: string;
1141
+ componentType?: string;
1142
+ preferredResponse?: string;
1143
+ responseModes?: AiAuthoringResponseMode[];
1144
+ consultativeContext?: AiConsultativeAuthoringContext;
1145
+ }
1146
+ declare function createComponentAuthoringContext(authoringContract: AiComponentAuthoringContract): AiJsonObject;
1147
+ declare function toAiJsonObject(value: unknown, path?: string): AiJsonObject;
620
1148
  /**
621
1149
  * Contrato fundamental para qualquer componente que suporte configuração via IA.
622
1150
  * O Agente de IA usa esta interface para Ler (Introspecção) e Escrever (Patching) no componente.
@@ -669,6 +1197,12 @@ interface AiConfigAdapter<TConfig = any> {
669
1197
  * Usado para sugestões heurísticas mais precisas no backend.
670
1198
  */
671
1199
  getSchemaFields?(): Record<string, any>[];
1200
+ /**
1201
+ * Prepara contexto assíncrono necessário antes de montar snapshots para IA.
1202
+ * Ex.: uma tabela pode carregar o schema canônico de filtros antes de expor
1203
+ * o contrato de authoring ao backend.
1204
+ */
1205
+ prepareAuthoringContext?(): Promise<void> | void;
672
1206
  /**
673
1207
  * Retorna contexto declarativo adicional para authoring assistido por IA.
674
1208
  * Deve conter contratos validaveis e instrucoes especificas do componente
@@ -734,6 +1268,17 @@ declare abstract class BaseAiAdapter<TConfig = any> implements AiConfigAdapter<T
734
1268
  protected getCriticalWarnings(patch: any): string[];
735
1269
  }
736
1270
 
1271
+ interface AiGovernedDecisionRoutingOptions {
1272
+ localCompositionTerms?: readonly string[];
1273
+ }
1274
+ /**
1275
+ * @deprecated Component assistants must not infer governed authoring from user
1276
+ * wording. Route through the backend semantic resolver and use this only for
1277
+ * explicit, structured context provided by a canonical backend source.
1278
+ */
1279
+ declare function shouldRoutePromptToGovernedDecision(prompt: string, contextHints?: AiJsonObject, options?: AiGovernedDecisionRoutingOptions): boolean;
1280
+ declare function normalizeAuthoringPrompt(prompt: string): string;
1281
+
737
1282
  interface FieldSchemaLike {
738
1283
  label: string;
739
1284
  type: string;
@@ -784,8 +1329,6 @@ declare class PraxisAiService {
784
1329
  generateContentStream(prompt: string, modelName?: string): Observable<string>;
785
1330
  generateJson<T>(prompt: string, modelName?: string, schema?: any): Observable<T | null>;
786
1331
  isMockMode(): boolean;
787
- private extractUserIntent;
788
- private getMockPatch;
789
1332
  listModels(apiKey?: string): Observable<AiModel[]>;
790
1333
  testConnection(apiKey?: string, model?: string): Observable<boolean>;
791
1334
  private resolveProvider;
@@ -795,7 +1338,7 @@ declare class PraxisAiService {
795
1338
  }
796
1339
 
797
1340
  declare const AI_INTENT_CONTRACT_VERSION: "v1.1";
798
- declare const AI_INTENT_CONTRACT_SCHEMA_HASH: "922e6d48637e64b403562d6d7cb833ed4942ffb0b452ec3573255871f4ec8739";
1341
+ declare const AI_INTENT_CONTRACT_SCHEMA_HASH: "41767dafdf6ebea802c083d77187ad6612937d6831188938dc21adce384b57a2";
799
1342
  type AiSchemaContext = AiSchemaContextContract;
800
1343
  interface AiSuggestionsRequest {
801
1344
  componentId: string;
@@ -828,10 +1371,22 @@ type AiPatchStreamEventType = AiPatchStreamEventType$1;
828
1371
  type AiPatchStreamStartResponse = AiPatchStreamStartResponseContract;
829
1372
  type AiPatchStreamCancelResponse = AiPatchStreamCancelResponseContract;
830
1373
  type AiPatchStreamEnvelope<TPayload extends AiJsonObject = AiJsonObject> = AiPatchStreamEnvelopeContract<TPayload>;
1374
+ type AgenticAuthoringManifestEditPlanRequest = AgenticAuthoringManifestEditPlanRequestContract;
1375
+ type AgenticAuthoringResolveTargetRequest = AgenticAuthoringResolveTargetRequestContract;
1376
+ type AgenticAuthoringResolvedTarget = AgenticAuthoringResolvedTargetContract;
1377
+ type AgenticAuthoringManifestValidationResult = AgenticAuthoringManifestValidationResultContract;
1378
+ type AgenticAuthoringManifestCompileResult = AgenticAuthoringManifestCompileResultContract;
1379
+ type AgenticAuthoringTurnStreamRequest = AgenticAuthoringTurnStreamRequestContract;
1380
+ type AgenticAuthoringTurnStreamStartResponse = AgenticAuthoringTurnStreamStartResponseContract;
1381
+ type AgenticAuthoringTurnStreamEnvelope<TPayload extends AiJsonObject = AiJsonObject> = AgenticAuthoringTurnStreamEnvelopeContract<TPayload>;
831
1382
  interface AiPatchStreamConnection {
832
1383
  events$: Observable<AiPatchStreamEnvelope>;
833
1384
  close: () => void;
834
1385
  }
1386
+ interface AgenticAuthoringTurnStreamConnection {
1387
+ events$: Observable<AgenticAuthoringTurnStreamEnvelope>;
1388
+ close: () => void;
1389
+ }
835
1390
  type AiPatchStreamConnectionErrorKind = 'unsupported' | 'http_status' | 'transport' | 'parse' | 'schema';
836
1391
  declare class AiPatchStreamConnectionError extends Error {
837
1392
  readonly kind: AiPatchStreamConnectionErrorKind;
@@ -882,6 +1437,9 @@ interface AiProviderStatusResponse {
882
1437
  success?: boolean;
883
1438
  message?: string;
884
1439
  }
1440
+ type AiAssistantObservationFeedbackRatingValue = AiAssistantObservationFeedbackRating;
1441
+ type AiAssistantObservationFeedbackRequest = AiAssistantObservationFeedbackRequestContract;
1442
+ type AiAssistantObservationFeedbackResponse = AiAssistantObservationFeedbackResponseContract;
885
1443
  interface AiContextTemplateMeta {
886
1444
  variants?: Array<{
887
1445
  id?: string;
@@ -924,34 +1482,73 @@ interface AiBackendStorageOptions {
924
1482
  defaultHeaders?: Record<string, string>;
925
1483
  allowLocalIdentityFallback?: boolean;
926
1484
  }
1485
+ interface AiBackendEndpoints {
1486
+ /**
1487
+ * Explicit base URL for `/praxis/config/ai/**`.
1488
+ * Hosts should normally prefer the shared `API_URL.default.baseUrl`; use this
1489
+ * only when AI orchestration is served by a distinct gateway.
1490
+ */
1491
+ aiBaseUrl?: string;
1492
+ /**
1493
+ * Explicit base URL for `/praxis/config/ai-context/**`.
1494
+ * When omitted, the service derives it from `API_URL.default.baseUrl`.
1495
+ */
1496
+ aiContextBaseUrl?: string;
1497
+ }
927
1498
  declare const AI_BACKEND_CONFIG_STORE: InjectionToken<AiBackendConfigStore>;
928
1499
  declare const AI_BACKEND_STORAGE_OPTIONS: InjectionToken<AiBackendStorageOptions>;
1500
+ declare const AI_BACKEND_ENDPOINTS: InjectionToken<AiBackendEndpoints>;
929
1501
  declare class AiBackendApiService {
930
1502
  private readonly http;
931
1503
  private readonly globalConfigStore;
932
1504
  private readonly storageOpts;
933
- private readonly baseUrl;
934
- private readonly contextUrl;
1505
+ private readonly endpointOpts;
1506
+ private readonly apiUrlConfig;
1507
+ private readonly fallbackAiBaseUrl;
1508
+ private readonly fallbackAiContextBaseUrl;
935
1509
  getSuggestions(request: AiSuggestionsRequest): Observable<AiSuggestionsResponse>;
936
1510
  getPatch(request: AiOrchestratorRequest): Observable<AiOrchestratorResponse>;
937
1511
  startPatchStream(request: AiOrchestratorRequest): Observable<AiPatchStreamStartResponse>;
938
1512
  connectPatchStream(streamId: string, lastEventId?: string, accessToken?: string): AiPatchStreamConnection;
939
1513
  cancelPatchStream(streamId: string, accessToken?: string): Observable<AiPatchStreamCancelResponse>;
1514
+ startAgenticAuthoringTurnStream(request: AgenticAuthoringTurnStreamRequest): Observable<AgenticAuthoringTurnStreamStartResponse>;
1515
+ connectAgenticAuthoringTurnStream(streamId: string, lastEventId?: string, accessToken?: string): AgenticAuthoringTurnStreamConnection;
1516
+ cancelAgenticAuthoringTurnStream(streamId: string, accessToken?: string): Observable<AiPatchStreamCancelResponse>;
1517
+ sendAssistantObservationFeedback(observationId: string, request: AiAssistantObservationFeedbackRequest): Observable<AiAssistantObservationFeedbackResponse>;
940
1518
  listModels(request: AiProviderModelsRequest): Observable<AiProviderModelsResponse>;
941
1519
  listProviderCatalog(): Observable<AiProviderCatalogResponse>;
942
1520
  testProvider(request: AiProviderTestRequest): Observable<AiProviderTestResponse>;
943
1521
  getAiStatus(): Observable<AiProviderStatusResponse>;
944
1522
  getAiContext(componentId: string, componentType: string): Observable<AiContextDTO>;
1523
+ getAgenticAuthoringManifest(componentId: string): Observable<AiJsonObject>;
1524
+ listAgenticAuthoringManifestTargets(componentId: string): Observable<AiJsonObject[]>;
1525
+ listAgenticAuthoringManifestOperations(componentId: string): Observable<AiJsonObject[]>;
1526
+ resolveAgenticAuthoringManifestTarget(componentId: string, request: AgenticAuthoringResolveTargetRequest): Observable<AgenticAuthoringResolvedTarget>;
1527
+ validateAgenticAuthoringManifestPlan(componentId: string, request: AgenticAuthoringManifestEditPlanRequest): Observable<AgenticAuthoringManifestValidationResult>;
1528
+ compileAgenticAuthoringManifestPatch(componentId: string, request: AgenticAuthoringManifestEditPlanRequest): Observable<AgenticAuthoringManifestCompileResult>;
945
1529
  loadGlobalAiConfig(): Observable<AiGlobalConfigSnapshot | null>;
946
1530
  saveGlobalAiConfig(aiConfig: AiGlobalConfigSnapshot): Observable<void>;
947
1531
  getHeaderContext(): AiHeaderContext;
948
1532
  private buildHeaders;
949
1533
  private normalizeContractVersion;
950
1534
  private normalizeContractSchemaHash;
1535
+ private normalizeLegacyPatchConversationIds;
1536
+ private normalizeConversationUuid;
1537
+ private isUuid;
1538
+ private authoringManifestUrl;
1539
+ private aiBaseUrl;
1540
+ private aiContextBaseUrl;
1541
+ private resolveBaseUrl;
1542
+ private resolveApiBaseUrl;
1543
+ private joinUrl;
1544
+ private normalizeBaseUrl;
1545
+ private buildApiUrl;
951
1546
  private resolveHeaderMap;
952
1547
  private parsePatchStreamEnvelope;
953
1548
  private isPatchStreamEnvelope;
954
1549
  private isJsonObject;
1550
+ private registerNamedStreamEventListeners;
1551
+ private isTerminalStreamEventType;
955
1552
  private probePatchStreamEndpoint;
956
1553
  static ɵfac: i0.ɵɵFactoryDeclaration<AiBackendApiService, never>;
957
1554
  static ɵprov: i0.ɵɵInjectableDeclaration<AiBackendApiService>;
@@ -973,6 +1570,7 @@ declare class AiResponseValidatorService {
973
1570
  private validateJsonLogicExpression;
974
1571
  private walkJsonLogicNode;
975
1572
  private isSupportedJsonLogicOperator;
1573
+ private validateJsonLogicOperatorArity;
976
1574
  private collectVarPaths;
977
1575
  private isValidTargetId;
978
1576
  private findSimilarTargetId;
@@ -1005,6 +1603,7 @@ declare class PraxisAssistantTurnController {
1005
1603
  private readonly options;
1006
1604
  private readonly stateSubject;
1007
1605
  readonly state$: Observable<PraxisAssistantTurnViewState>;
1606
+ private activeFlowClientTurnId;
1008
1607
  constructor(flow: PraxisAssistantTurnFlow, options: PraxisAssistantTurnControllerOptions);
1009
1608
  snapshot(): PraxisAssistantTurnViewState;
1010
1609
  setContextItems(items: readonly PraxisAssistantShellContextItem[]): void;
@@ -1017,6 +1616,7 @@ declare class PraxisAssistantTurnController {
1017
1616
  submitEditedMessage(messageId: string, text: string): Observable<PraxisAssistantTurnViewState>;
1018
1617
  submitPrompt(prompt: string, action?: PraxisAssistantTurnAction): Observable<PraxisAssistantTurnViewState>;
1019
1618
  answerClarification(option: PraxisAssistantClarificationOption | string): Observable<PraxisAssistantTurnViewState>;
1619
+ private semanticClarificationContextHints;
1020
1620
  apply(): Observable<PraxisAssistantTurnViewState>;
1021
1621
  retry(): Observable<PraxisAssistantTurnViewState>;
1022
1622
  cancel(): Observable<PraxisAssistantTurnViewState>;
@@ -1025,6 +1625,10 @@ declare class PraxisAssistantTurnController {
1025
1625
  private submitExistingUserMessage;
1026
1626
  private findUserMessageIndex;
1027
1627
  private resetReplayState;
1628
+ private resetActiveTurnState;
1629
+ private shouldApplyFlowResult;
1630
+ private resetConversationState;
1631
+ private resetConversationAfterCancel;
1028
1632
  private applyResult;
1029
1633
  private resolveSubmitAction;
1030
1634
  private buildPendingClarification;
@@ -1032,10 +1636,85 @@ declare class PraxisAssistantTurnController {
1032
1636
  private resolveMessageRole;
1033
1637
  private resolvePhase;
1034
1638
  private buildMessage;
1639
+ private shouldAttachObservationId;
1035
1640
  private createId;
1036
1641
  private patchState;
1037
1642
  private cloneState;
1038
1643
  private toObservable;
1644
+ private buildFlowErrorResult;
1645
+ private describeFlowError;
1646
+ private serializeFlowError;
1647
+ private toRecord;
1648
+ private toString;
1649
+ private toNumber;
1650
+ }
1651
+
1652
+ declare function toPraxisAssistantClarificationOption(reply: PraxisAssistantShellQuickReply): PraxisAssistantClarificationOption;
1653
+ declare function submitPraxisAssistantQuickReply(controller: PraxisAssistantTurnController, reply: PraxisAssistantShellQuickReply): Observable<PraxisAssistantTurnViewState>;
1654
+
1655
+ type PraxisAssistantSessionVisibility = 'active' | 'minimized';
1656
+ type PraxisAssistantSessionPresence = 'global-dock' | 'origin-anchor';
1657
+ interface PraxisAssistantSessionDescriptor {
1658
+ id: string;
1659
+ ownerId: string;
1660
+ ownerType: string;
1661
+ title: string;
1662
+ summary?: string | null;
1663
+ mode?: PraxisAssistantShellMode | null;
1664
+ state?: PraxisAssistantShellState | null;
1665
+ visibility?: PraxisAssistantSessionVisibility | null;
1666
+ contextItems?: readonly PraxisAssistantShellContextItem[] | null;
1667
+ contextSnapshot?: PraxisAssistantContextSnapshot | null;
1668
+ badge?: string | null;
1669
+ icon?: string | null;
1670
+ presence?: PraxisAssistantSessionPresence | null;
1671
+ updatedAt?: string | null;
1672
+ }
1673
+ interface PraxisAssistantSessionSnapshot {
1674
+ id: string;
1675
+ ownerId: string;
1676
+ ownerType: string;
1677
+ title: string;
1678
+ summary: string;
1679
+ mode: PraxisAssistantShellMode;
1680
+ state: PraxisAssistantShellState;
1681
+ visibility: PraxisAssistantSessionVisibility;
1682
+ contextItems: readonly PraxisAssistantShellContextItem[];
1683
+ contextSnapshot: PraxisAssistantContextSnapshot | null;
1684
+ badge: string;
1685
+ icon: string;
1686
+ presence: PraxisAssistantSessionPresence;
1687
+ createdAt: string;
1688
+ updatedAt: string;
1689
+ }
1690
+ type PraxisAssistantSessionIdentityRef = string | PraxisAssistantIdentity | PraxisAssistantContextSnapshot;
1691
+ type PraxisAssistantContextSessionDescriptor = Omit<PraxisAssistantSessionDescriptor, 'id' | 'ownerId' | 'ownerType' | 'title' | 'contextSnapshot'> & {
1692
+ title?: string;
1693
+ };
1694
+ declare class PraxisAssistantSessionRegistryService {
1695
+ private readonly sessionsState;
1696
+ readonly sessions: i0.Signal<PraxisAssistantSessionSnapshot[]>;
1697
+ readonly activeSession: i0.Signal<PraxisAssistantSessionSnapshot | null>;
1698
+ readonly minimizedSessions: i0.Signal<PraxisAssistantSessionSnapshot[]>;
1699
+ upsertSession(descriptor: PraxisAssistantSessionDescriptor): PraxisAssistantSessionSnapshot;
1700
+ upsertContextSession(contextSnapshot: PraxisAssistantContextSnapshot, descriptor?: PraxisAssistantContextSessionDescriptor): PraxisAssistantSessionSnapshot;
1701
+ openSession(sessionId: string): PraxisAssistantSessionSnapshot | null;
1702
+ openContextSession(identity: PraxisAssistantSessionIdentityRef): PraxisAssistantSessionSnapshot | null;
1703
+ minimizeSession(sessionId: string): PraxisAssistantSessionSnapshot | null;
1704
+ minimizeContextSession(identity: PraxisAssistantSessionIdentityRef): PraxisAssistantSessionSnapshot | null;
1705
+ removeSession(sessionId: string): void;
1706
+ removeContextSession(identity: PraxisAssistantSessionIdentityRef): void;
1707
+ getSession(sessionId: string): PraxisAssistantSessionSnapshot | null;
1708
+ getContextSession(identity: PraxisAssistantSessionIdentityRef): PraxisAssistantSessionSnapshot | null;
1709
+ clear(): void;
1710
+ private setVisibility;
1711
+ private resolveSessionId;
1712
+ private normalizeDescriptor;
1713
+ private assertContextIdentity;
1714
+ private toShellContextItems;
1715
+ private sortSessions;
1716
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAssistantSessionRegistryService, never>;
1717
+ static ɵprov: i0.ɵɵInjectableDeclaration<PraxisAssistantSessionRegistryService>;
1039
1718
  }
1040
1719
 
1041
1720
  type AssistantMessageRole = 'user' | 'assistant' | 'system';
@@ -1077,7 +1756,7 @@ interface ClarificationOption {
1077
1756
  value: string;
1078
1757
  example?: string;
1079
1758
  }
1080
- type ClarificationContextHints = AiJsonObject;
1759
+ type ClarificationContextHints = AiContextHintsContract;
1081
1760
  interface ClarificationRichOption extends ClarificationOption {
1082
1761
  contextHints?: ClarificationContextHints;
1083
1762
  }
@@ -1092,6 +1771,7 @@ declare class PraxisAiAssistantComponent implements OnDestroy {
1092
1771
  adapter: AiConfigAdapter;
1093
1772
  riskPolicy: RiskPolicy | null;
1094
1773
  allowManualPatchEdit: boolean;
1774
+ hasBackdrop: boolean;
1095
1775
  readonly overlayPositions: ConnectedPosition[];
1096
1776
  overlayOrigin: CdkOverlayOrigin;
1097
1777
  triggerButton?: ElementRef<HTMLButtonElement>;
@@ -1411,6 +2091,7 @@ declare class PraxisAiAssistantComponent implements OnDestroy {
1411
2091
  private hasBadgeColors;
1412
2092
  private hasBadgeField;
1413
2093
  private mergeContextHints;
2094
+ private enrichDomainCatalogAuthoringHints;
1414
2095
  private setResourcePathHint;
1415
2096
  private clearResourcePathHint;
1416
2097
  private matchClarificationOptionPath;
@@ -1463,9 +2144,19 @@ declare class PraxisAiAssistantComponent implements OnDestroy {
1463
2144
  private restoreFocusToTrigger;
1464
2145
  private normalizeError;
1465
2146
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAiAssistantComponent, never>;
1466
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAiAssistantComponent, "praxis-ai-assistant", never, { "adapter": { "alias": "adapter"; "required": true; }; "riskPolicy": { "alias": "riskPolicy"; "required": false; }; "allowManualPatchEdit": { "alias": "allowManualPatchEdit"; "required": false; }; }, {}, never, never, true, never>;
2147
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAiAssistantComponent, "praxis-ai-assistant", never, { "adapter": { "alias": "adapter"; "required": true; }; "riskPolicy": { "alias": "riskPolicy"; "required": false; }; "allowManualPatchEdit": { "alias": "allowManualPatchEdit"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; }, {}, never, never, true, never>;
1467
2148
  }
1468
2149
 
2150
+ type ResizeDirection = 'n' | 's' | 'e' | 'w' | 'ne' | 'nw' | 'se' | 'sw';
2151
+ type QuickReplyPresentationItem = PraxisAssistantShellQuickReplyPresentationItem & {
2152
+ key: 'bestFor' | 'returns' | 'nextStep' | string;
2153
+ icon: string;
2154
+ };
2155
+ interface QuickReplyContextChip {
2156
+ icon: string;
2157
+ value: string;
2158
+ ariaLabel: string;
2159
+ }
1469
2160
  declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1470
2161
  labels: Partial<PraxisAssistantShellLabels> | null;
1471
2162
  mode: PraxisAssistantShellMode;
@@ -1481,10 +2172,15 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1481
2172
  panelTestId: string;
1482
2173
  submitTestId: string;
1483
2174
  applyTestId: string;
2175
+ primaryAction: PraxisAssistantShellAction | null;
2176
+ secondaryActions: readonly PraxisAssistantShellAction[];
2177
+ governanceActions: readonly PraxisAssistantShellAction[];
1484
2178
  busy: boolean;
1485
2179
  canSubmit: boolean;
1486
2180
  canApply: boolean;
1487
2181
  submitOnEnter: boolean;
2182
+ showAttachAction: boolean;
2183
+ enablePastedAttachments: boolean;
1488
2184
  enableFileAttachments: boolean;
1489
2185
  attachmentAccept: string;
1490
2186
  attachmentMultiple: boolean;
@@ -1497,6 +2193,9 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1497
2193
  promptChange: EventEmitter<string>;
1498
2194
  submitPrompt: EventEmitter<string>;
1499
2195
  apply: EventEmitter<void>;
2196
+ retryTurn: EventEmitter<void>;
2197
+ cancelTurn: EventEmitter<void>;
2198
+ shellAction: EventEmitter<PraxisAssistantShellAction>;
1500
2199
  close: EventEmitter<void>;
1501
2200
  attach: EventEmitter<void>;
1502
2201
  attachmentsPasted: EventEmitter<PraxisAssistantShellAttachment[]>;
@@ -1513,11 +2212,14 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1513
2212
  panel?: ElementRef<HTMLElement>;
1514
2213
  conversation?: ElementRef<HTMLElement>;
1515
2214
  private readonly cdr;
2215
+ private readonly injector;
1516
2216
  protected currentPrompt: string;
1517
2217
  protected resolvedLabels: PraxisAssistantShellLabels;
1518
2218
  protected currentLayout: PraxisAssistantShellLayout;
2219
+ protected readonly resizeHandles: readonly ResizeDirection[];
1519
2220
  private pointerSession;
1520
2221
  private readonly ownedPreviewUrls;
2222
+ private readonly submittedFeedbackObservationIds;
1521
2223
  private readonly onWindowPointerMove;
1522
2224
  private readonly onWindowPointerUp;
1523
2225
  ngOnChanges(changes: SimpleChanges): void;
@@ -1529,13 +2231,67 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1529
2231
  protected onAttachClick(fileInput: HTMLInputElement): void;
1530
2232
  protected onAttachmentFilesSelected(event: Event): void;
1531
2233
  protected onApply(): void;
2234
+ protected renderMessageText(text: string | null | undefined): string;
2235
+ private renderInlineMarkdown;
2236
+ private escapeHtml;
2237
+ protected shouldShowStatusText(): boolean;
2238
+ protected shouldShowErrorText(): boolean;
2239
+ protected onShellAction(action: PraxisAssistantShellAction): void;
2240
+ protected getPrimaryAction(): PraxisAssistantShellAction;
2241
+ protected getSecondaryActions(): readonly PraxisAssistantShellAction[];
2242
+ protected getPrimaryActionTooltip(action: PraxisAssistantShellAction): string;
2243
+ protected isShellActionDisabled(action: PraxisAssistantShellAction): boolean;
2244
+ protected getShellActionTone(action: PraxisAssistantShellAction): string;
2245
+ protected trackShellAction(_index: number, action: PraxisAssistantShellAction): string;
2246
+ private hasRecoverableTurn;
2247
+ private shouldShowAuxiliaryText;
2248
+ private normalizeMessageText;
2249
+ private getDefaultPrimaryAction;
1532
2250
  protected onQuickReply(reply: PraxisAssistantShellQuickReply): void;
2251
+ protected getQuickReplyAriaLabel(reply: PraxisAssistantShellQuickReply): string;
2252
+ protected getQuickReplyTechnicalDetails(reply: PraxisAssistantShellQuickReply): string;
2253
+ protected isRichQuickReply(reply: PraxisAssistantShellQuickReply): boolean;
2254
+ protected shouldUseInlineQuickReplies(): boolean;
2255
+ protected getQuickReplyDescription(reply: PraxisAssistantShellQuickReply): string;
2256
+ protected getQuickReplyContextChips(reply: PraxisAssistantShellQuickReply): readonly QuickReplyContextChip[];
2257
+ protected getQuickReplyPresentationItems(reply: PraxisAssistantShellQuickReply): readonly QuickReplyPresentationItem[];
2258
+ private defaultQuickReplyPresentation;
2259
+ protected getQuickReplyCategoryLabel(reply: PraxisAssistantShellQuickReply): string;
2260
+ protected getQuickReplyIcon(reply: PraxisAssistantShellQuickReply): string;
2261
+ protected getQuickReplyCtaLabel(reply: PraxisAssistantShellQuickReply): string;
2262
+ protected getQuickReplyTone(reply: PraxisAssistantShellQuickReply): string;
2263
+ private normalizeQuickReplyTone;
2264
+ private asRecord;
2265
+ private stringHint;
2266
+ private quickReplyHint;
2267
+ private hasQuickReplyResourceContext;
2268
+ private isFieldDiscoveryQuickReply;
2269
+ protected isContextualPreviewActionQuickReply(reply: PraxisAssistantShellQuickReply): boolean;
2270
+ protected isGuidedActionQuickReply(reply: PraxisAssistantShellQuickReply): boolean;
2271
+ private quickReplyPresentation;
2272
+ private quickReplyPresentationKind;
2273
+ private presentationEvidenceToChip;
2274
+ private getContextualActionChips;
2275
+ private isGenericContextualActionDescription;
2276
+ private trimSentencePunctuation;
2277
+ private shortPathLabel;
2278
+ private shortTechnicalLabel;
2279
+ protected getCloseIcon(): string;
2280
+ private normalizeShellAction;
1533
2281
  protected onRemoveAttachment(attachment: PraxisAssistantShellAttachment): void;
1534
2282
  protected onMessageAction(message: PraxisAssistantShellMessage, action: PraxisAssistantShellMessageAction): void;
2283
+ protected canSendMessageFeedback(message: PraxisAssistantShellMessage): boolean;
2284
+ protected isMessageFeedbackSubmitted(message: PraxisAssistantShellMessage): boolean;
2285
+ protected sendMessageFeedback(message: PraxisAssistantShellMessage, rating: AiAssistantObservationFeedbackRatingValue): void;
2286
+ private resolveAiApi;
2287
+ protected getMessageActionIcon(action: PraxisAssistantShellMessageAction): string;
2288
+ protected getMessageActionLabel(action: PraxisAssistantShellMessageAction): string;
2289
+ protected isMessageActionIconOnly(action: PraxisAssistantShellMessageAction): boolean;
1535
2290
  protected getModeLabel(): string;
1536
2291
  protected getStateLabel(): string;
1537
2292
  protected startDrag(event: PointerEvent): void;
1538
- protected startResize(event: PointerEvent): void;
2293
+ protected startResize(direction: ResizeDirection, event: PointerEvent): void;
2294
+ protected trackResizeHandle(_index: number, direction: ResizeDirection): ResizeDirection;
1539
2295
  protected trackMessage(_index: number, message: PraxisAssistantShellMessage): string;
1540
2296
  protected trackMessageAction(_index: number, action: PraxisAssistantShellMessageAction): string;
1541
2297
  protected trackQuickReply(_index: number, reply: PraxisAssistantShellQuickReply): string;
@@ -1543,9 +2299,10 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1543
2299
  protected trackAttachment(_index: number, attachment: PraxisAssistantShellAttachment): string;
1544
2300
  private startPointerSession;
1545
2301
  private handlePointerMove;
2302
+ private resizeLayout;
1546
2303
  private finishPointerSession;
1547
2304
  private detachPointerListeners;
1548
- private resolveBounds;
2305
+ private resolveViewportBounds;
1549
2306
  private normalizeLayout;
1550
2307
  private clampLayout;
1551
2308
  private clamp;
@@ -1557,7 +2314,52 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1557
2314
  private revokeAllOwnedPreviewUrls;
1558
2315
  private revokeOwnedPreviewUrl;
1559
2316
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAiAssistantShellComponent, never>;
1560
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAiAssistantShellComponent, "praxis-ai-assistant-shell", never, { "labels": { "alias": "labels"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "state": { "alias": "state"; "required": false; }; "contextItems": { "alias": "contextItems"; "required": false; }; "attachments": { "alias": "attachments"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "quickReplies": { "alias": "quickReplies"; "required": false; }; "prompt": { "alias": "prompt"; "required": false; }; "statusText": { "alias": "statusText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "testIdPrefix": { "alias": "testIdPrefix"; "required": false; }; "panelTestId": { "alias": "panelTestId"; "required": false; }; "submitTestId": { "alias": "submitTestId"; "required": false; }; "applyTestId": { "alias": "applyTestId"; "required": false; }; "busy": { "alias": "busy"; "required": false; }; "canSubmit": { "alias": "canSubmit"; "required": false; }; "canApply": { "alias": "canApply"; "required": false; }; "submitOnEnter": { "alias": "submitOnEnter"; "required": false; }; "enableFileAttachments": { "alias": "enableFileAttachments"; "required": false; }; "attachmentAccept": { "alias": "attachmentAccept"; "required": false; }; "attachmentMultiple": { "alias": "attachmentMultiple"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, { "promptChange": "promptChange"; "submitPrompt": "submitPrompt"; "apply": "apply"; "close": "close"; "attach": "attach"; "attachmentsPasted": "attachmentsPasted"; "attachmentsSelected": "attachmentsSelected"; "removeAttachment": "removeAttachment"; "messageAction": "messageAction"; "editMessage": "editMessage"; "resendMessage": "resendMessage"; "quickReply": "quickReply"; "layoutChange": "layoutChange"; }, never, never, true, never>;
2317
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAiAssistantShellComponent, "praxis-ai-assistant-shell", never, { "labels": { "alias": "labels"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "state": { "alias": "state"; "required": false; }; "contextItems": { "alias": "contextItems"; "required": false; }; "attachments": { "alias": "attachments"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "quickReplies": { "alias": "quickReplies"; "required": false; }; "prompt": { "alias": "prompt"; "required": false; }; "statusText": { "alias": "statusText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "testIdPrefix": { "alias": "testIdPrefix"; "required": false; }; "panelTestId": { "alias": "panelTestId"; "required": false; }; "submitTestId": { "alias": "submitTestId"; "required": false; }; "applyTestId": { "alias": "applyTestId"; "required": false; }; "primaryAction": { "alias": "primaryAction"; "required": false; }; "secondaryActions": { "alias": "secondaryActions"; "required": false; }; "governanceActions": { "alias": "governanceActions"; "required": false; }; "busy": { "alias": "busy"; "required": false; }; "canSubmit": { "alias": "canSubmit"; "required": false; }; "canApply": { "alias": "canApply"; "required": false; }; "submitOnEnter": { "alias": "submitOnEnter"; "required": false; }; "showAttachAction": { "alias": "showAttachAction"; "required": false; }; "enablePastedAttachments": { "alias": "enablePastedAttachments"; "required": false; }; "enableFileAttachments": { "alias": "enableFileAttachments"; "required": false; }; "attachmentAccept": { "alias": "attachmentAccept"; "required": false; }; "attachmentMultiple": { "alias": "attachmentMultiple"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, { "promptChange": "promptChange"; "submitPrompt": "submitPrompt"; "apply": "apply"; "retryTurn": "retryTurn"; "cancelTurn": "cancelTurn"; "shellAction": "shellAction"; "close": "close"; "attach": "attach"; "attachmentsPasted": "attachmentsPasted"; "attachmentsSelected": "attachmentsSelected"; "removeAttachment": "removeAttachment"; "messageAction": "messageAction"; "editMessage": "editMessage"; "resendMessage": "resendMessage"; "quickReply": "quickReply"; "layoutChange": "layoutChange"; }, never, never, true, never>;
2318
+ }
2319
+
2320
+ type PraxisAssistantDockTone = 'ready' | 'working' | 'review' | 'governed' | 'error';
2321
+ declare class PraxisAiAssistantDockComponent {
2322
+ title: string;
2323
+ summary: string;
2324
+ badge: string;
2325
+ icon: string;
2326
+ state: PraxisAssistantShellState | null;
2327
+ tone: PraxisAssistantDockTone | null;
2328
+ ariaLabel: string;
2329
+ openAriaLabel: string;
2330
+ openTooltip: string;
2331
+ testId: string;
2332
+ openTestId: string;
2333
+ open: EventEmitter<void>;
2334
+ resolvedTone(): PraxisAssistantDockTone;
2335
+ resolvedIcon(): string;
2336
+ resolvedBadge(): string;
2337
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAiAssistantDockComponent, never>;
2338
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAiAssistantDockComponent, "praxis-ai-assistant-dock", never, { "title": { "alias": "title"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "state": { "alias": "state"; "required": false; }; "tone": { "alias": "tone"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "openAriaLabel": { "alias": "openAriaLabel"; "required": false; }; "openTooltip": { "alias": "openTooltip"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; "openTestId": { "alias": "openTestId"; "required": false; }; }, { "open": "open"; }, never, never, true, never>;
2339
+ }
2340
+
2341
+ declare class PraxisAiAssistantSessionHostComponent {
2342
+ private readonly registry;
2343
+ testId: string;
2344
+ dockTestIdPrefix: string;
2345
+ ariaLabel: string;
2346
+ openAriaLabel: string;
2347
+ openTooltip: string;
2348
+ ownerType: string | null;
2349
+ ownerId: string | null;
2350
+ visibility: PraxisAssistantSessionVisibility | 'all';
2351
+ includeOriginAnchored: boolean;
2352
+ sessionOpen: EventEmitter<PraxisAssistantSessionSnapshot>;
2353
+ visibleSessions(): readonly PraxisAssistantSessionSnapshot[];
2354
+ openSession(sessionId: string): void;
2355
+ sessionAriaLabel(session: PraxisAssistantSessionSnapshot): string;
2356
+ dockTestId(session: PraxisAssistantSessionSnapshot, first: boolean): string;
2357
+ dockOpenTestId(session: PraxisAssistantSessionSnapshot, first: boolean): string;
2358
+ trackSession(_index: number, session: PraxisAssistantSessionSnapshot): string;
2359
+ private safeId;
2360
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAiAssistantSessionHostComponent, never>;
2361
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAiAssistantSessionHostComponent, "praxis-ai-assistant-session-host", never, { "testId": { "alias": "testId"; "required": false; }; "dockTestIdPrefix": { "alias": "dockTestIdPrefix"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "openAriaLabel": { "alias": "openAriaLabel"; "required": false; }; "openTooltip": { "alias": "openTooltip"; "required": false; }; "ownerType": { "alias": "ownerType"; "required": false; }; "ownerId": { "alias": "ownerId"; "required": false; }; "visibility": { "alias": "visibility"; "required": false; }; "includeOriginAnchored": { "alias": "includeOriginAnchored"; "required": false; }; }, { "sessionOpen": "sessionOpen"; }, never, never, true, never>;
2362
+ static ngAcceptInputType_includeOriginAnchored: unknown;
1561
2363
  }
1562
2364
 
1563
2365
  declare class AiContextBuilderService {
@@ -1566,7 +2368,7 @@ declare class AiContextBuilderService {
1566
2368
  /**
1567
2369
  * Builds the complete context for the AI prompt
1568
2370
  */
1569
- buildPromptContext(fieldSchemas: Record<string, FieldSchemaLike>, targetType: 'field' | 'section' | 'action' | 'row' | 'column', propertySchema: RulePropertySchema): PromptContext;
2371
+ buildPromptContext(fieldSchemas: Record<string, FieldSchemaLike>, targetType: 'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock', propertySchema: RulePropertySchema): PromptContext;
1570
2372
  buildRulePrompt(userPrompt: string, context: PromptContext): string;
1571
2373
  buildSuggestionPrompt(context: PromptContext): string;
1572
2374
  /**
@@ -1595,7 +2397,7 @@ declare class AiRuleWizardDialogComponent implements OnInit {
1595
2397
  private snackBar;
1596
2398
  private contextBuilder;
1597
2399
  private cdr;
1598
- selectedTargetType: 'field' | 'section' | 'action' | 'row' | 'column';
2400
+ selectedTargetType: 'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock';
1599
2401
  userPrompt: string;
1600
2402
  isGenerating: boolean;
1601
2403
  validationError: string | null;
@@ -1631,5 +2433,5 @@ declare class AiRuleWizardDialogComponent implements OnInit {
1631
2433
  static ɵcmp: i0.ɵɵComponentDeclaration<AiRuleWizardDialogComponent, "praxis-ai-rule-wizard-dialog", never, {}, {}, never, never, true, never>;
1632
2434
  }
1633
2435
 
1634
- export { AI_BACKEND_CONFIG_STORE, AI_BACKEND_STORAGE_OPTIONS, AI_CONTRACT_SCHEMA_HASH, AI_CONTRACT_VERSION, AI_INTENT_CONTRACT_SCHEMA_HASH, AI_INTENT_CONTRACT_VERSION, AI_STREAM_EVENT_SCHEMA_VERSION, AI_STREAM_EVENT_TYPES, AiBackendApiService, AiPatchStreamConnectionError, AiResponseValidatorService, AiRuleWizardDialogComponent, BaseAiAdapter, PraxisAi, PraxisAiAssistantComponent, PraxisAiAssistantShellComponent, PraxisAiService, PraxisAssistantTurnController, PraxisAssistantTurnOrchestratorService, SchemaMinifierService };
1635
- export type { AgenticAuthoringApplyRequestContract, AgenticAuthoringApplyResultContract, AgenticAuthoringAttachmentSummaryContract, AgenticAuthoringCandidateContract, AgenticAuthoringComponentCapabilitiesResultContract, AgenticAuthoringConversationContextContract, AgenticAuthoringConversationMessageContract, AgenticAuthoringIntentResolutionRequestContract, AgenticAuthoringIntentResolutionResultContract, AgenticAuthoringPendingClarificationContract, AgenticAuthoringPlanRequestContract, AgenticAuthoringPreviewResultContract, AgenticAuthoringQuickReplyContract, AiBackendConfigStore, AiBackendStorageOptions, AiChatMessage, AiChatMessageContract, AiClarificationUiContract, AiConfigAdapter, AiContextDTO, AiContextTemplate, AiContextTemplateMeta, AiCurrentStateDigest, AiCurrentStateDigestContract, AiExamplePair, AiGlobalConfigSnapshot, AiHeaderContext, AiIntegrationConfig, AiJsonArray, AiJsonObject, AiJsonPrimitive, AiJsonValue, AiMemoryInfoContract, AiModel, AiOptionContract, AiOrchestratorRequest, AiOrchestratorRequestContract, AiOrchestratorResponse, AiOrchestratorResponseContract, AiOrchestratorResponseType, AiPatchDiff, AiPatchDiffContract, AiPatchStreamCancelResponse, AiPatchStreamCancelResponseContract, AiPatchStreamConnection, AiPatchStreamConnectionErrorKind, AiPatchStreamEnvelope, AiPatchStreamEnvelopeContract, AiPatchStreamEventType, AiPatchStreamStartResponse, AiPatchStreamStartResponseContract, AiProviderCatalogItem, AiProviderCatalogResponse, AiProviderModelsRequest, AiProviderModelsResponse, AiProviderStatusResponse, AiProviderTestRequest, AiProviderTestResponse, AiResponseCompileResult, AiRuleResponse, AiSchemaContext, AiSchemaContextContract, AiSuggestion, AiSuggestionsRequest, AiSuggestionsResponse, AiUiContextRef, AiUiContextRefContract, AiValidationError, AiValidationResult, AiValidationWarning, AiWizardData, Capability, FieldSchemaLike, MinifiedField, PatchResult, PraxisAssistantClarificationOption, PraxisAssistantClarificationQuestion, PraxisAssistantClarificationQuestionType, PraxisAssistantPendingClarification, PraxisAssistantShellAttachment, PraxisAssistantShellContextItem, PraxisAssistantShellLabels, PraxisAssistantShellLayout, PraxisAssistantShellMessage, PraxisAssistantShellMessageAction, PraxisAssistantShellMessageRole, PraxisAssistantShellMode, PraxisAssistantShellQuickReply, PraxisAssistantShellState, PraxisAssistantTurnAction, PraxisAssistantTurnControllerOptions, PraxisAssistantTurnFlow, PraxisAssistantTurnPhase, PraxisAssistantTurnRequest, PraxisAssistantTurnResult, PraxisAssistantTurnViewState, ProblemResponseContract, PromptContext, RulePropertyDefinition, RulePropertySchema, RulePropertyType, ValidationContext, ValueKind };
2436
+ export { AI_BACKEND_CONFIG_STORE, AI_BACKEND_ENDPOINTS, AI_BACKEND_STORAGE_OPTIONS, AI_CONTRACT_SCHEMA_HASH, AI_CONTRACT_VERSION, AI_INTENT_CONTRACT_SCHEMA_HASH, AI_INTENT_CONTRACT_VERSION, AI_STREAM_EVENT_SCHEMA_VERSION, AI_STREAM_EVENT_TYPES, AiBackendApiService, AiPatchStreamConnectionError, AiResponseValidatorService, AiRuleWizardDialogComponent, BaseAiAdapter, PRAXIS_ASSISTANT_CONTEXT_ATTACHMENT_LIMIT, PRAXIS_ASSISTANT_CONTEXT_ITEM_LIMIT, PRAXIS_ASSISTANT_CONTEXT_SCHEMA_FIELD_LIMIT, PRAXIS_ASSISTANT_CONTEXT_TEXT_LIMIT, PraxisAi, PraxisAiAssistantComponent, PraxisAiAssistantDockComponent, PraxisAiAssistantSessionHostComponent, PraxisAiAssistantShellComponent, PraxisAiService, PraxisAssistantSessionRegistryService, PraxisAssistantTurnController, PraxisAssistantTurnOrchestratorService, SchemaMinifierService, createComponentAuthoringContext, createPraxisAssistantViewportLayout, normalizeAuthoringPrompt, normalizePraxisAssistantAttachmentSummary, normalizePraxisAssistantContextSnapshot, sanitizePraxisAssistantText, shouldRoutePromptToGovernedDecision, submitPraxisAssistantQuickReply, toAiJsonObject, toPraxisAssistantClarificationOption, toPraxisAssistantConversationMessages };
2437
+ export type { AgenticAuthoringApplyRequestContract, AgenticAuthoringApplyResultContract, AgenticAuthoringAttachmentSummaryContract, AgenticAuthoringCandidateContract, AgenticAuthoringComponentCapabilitiesResultContract, AgenticAuthoringComponentCapabilityCatalogContract, AgenticAuthoringComponentCapabilityContract, AgenticAuthoringComponentCapabilityExampleContract, AgenticAuthoringComponentFieldAliasContract, AgenticAuthoringConversationContextContract, AgenticAuthoringConversationMessageContract, AgenticAuthoringIntentResolutionRequestContract, AgenticAuthoringIntentResolutionResultContract, AgenticAuthoringManifestCompileResult, AgenticAuthoringManifestCompileResultContract, AgenticAuthoringManifestEditPlanRequest, AgenticAuthoringManifestEditPlanRequestContract, AgenticAuthoringManifestValidationResult, AgenticAuthoringManifestValidationResultContract, AgenticAuthoringPendingClarificationContract, AgenticAuthoringPlanRequestContract, AgenticAuthoringPreviewResultContract, AgenticAuthoringQuickReplyContract, AgenticAuthoringResolveTargetRequest, AgenticAuthoringResolveTargetRequestContract, AgenticAuthoringResolvedTarget, AgenticAuthoringResolvedTargetContract, AgenticAuthoringResourceCandidatesRequestContract, AgenticAuthoringResourceCandidatesResultContract, AgenticAuthoringSemanticDecisionContract, AgenticAuthoringTurnStreamConnection, AgenticAuthoringTurnStreamEnvelope, AgenticAuthoringTurnStreamEnvelopeContract, AgenticAuthoringTurnStreamRequest, AgenticAuthoringTurnStreamRequestContract, AgenticAuthoringTurnStreamStartResponse, AgenticAuthoringTurnStreamStartResponseContract, AiAssistantObservationFeedbackRating, AiAssistantObservationFeedbackRatingValue, AiAssistantObservationFeedbackRequest, AiAssistantObservationFeedbackRequestContract, AiAssistantObservationFeedbackResponse, AiAssistantObservationFeedbackResponseContract, AiAssistantObservationResponseContract, AiAssistantObservationSummaryResponseContract, AiAssistantObservationSummaryRowContract, AiAuthoringResponseMode, AiAuthoringResponseModeKind, AiBackendConfigStore, AiBackendEndpoints, AiBackendStorageOptions, AiChatMessage, AiChatMessageContract, AiClarificationUiContract, AiComponentAuthoringContract, AiConfigAdapter, AiConsultativeAuthoringContext, AiContextDTO, AiContextHintsContract, AiContextTemplate, AiContextTemplateMeta, AiCurrentStateDigest, AiCurrentStateDigestContract, AiDomainCatalogContextHintContract, AiDomainCatalogContextHintIntent, AiDomainCatalogContextHintItemType, AiDomainCatalogRelationshipHintContract, AiExamplePair, AiGlobalConfigSnapshot, AiGovernedDecisionRoutingOptions, AiHeaderContext, AiIntegrationConfig, AiJsonArray, AiJsonObject, AiJsonPrimitive, AiJsonValue, AiMemoryInfoContract, AiModel, AiOptionContract, AiOrchestratorRequest, AiOrchestratorRequestContract, AiOrchestratorResponse, AiOrchestratorResponseContract, AiOrchestratorResponseType, AiPatchDiff, AiPatchDiffContract, AiPatchStreamCancelResponse, AiPatchStreamCancelResponseContract, AiPatchStreamConnection, AiPatchStreamConnectionErrorKind, AiPatchStreamEnvelope, AiPatchStreamEnvelopeContract, AiPatchStreamEventType, AiPatchStreamStartResponse, AiPatchStreamStartResponseContract, AiProviderCatalogItem, AiProviderCatalogResponse, AiProviderModelsRequest, AiProviderModelsResponse, AiProviderStatusResponse, AiProviderTestRequest, AiProviderTestResponse, AiResponseCompileResult, AiRuleResponse, AiSchemaContext, AiSchemaContextContract, AiSuggestion, AiSuggestionsRequest, AiSuggestionsResponse, AiTurnStreamEventType, AiUiContextRef, AiUiContextRefContract, AiValidationError, AiValidationResult, AiValidationWarning, AiWizardData, Capability, FieldSchemaLike, MinifiedField, PatchResult, PraxisAssistantActionContract, PraxisAssistantActionKind, PraxisAssistantAttachmentKind, PraxisAssistantAttachmentSummary, PraxisAssistantAuthoringManifestRef, PraxisAssistantCapabilityRef, PraxisAssistantClarificationOption, PraxisAssistantClarificationQuestion, PraxisAssistantClarificationQuestionType, PraxisAssistantComponentType, PraxisAssistantContextItem, PraxisAssistantContextMode, PraxisAssistantContextSessionDescriptor, PraxisAssistantContextSnapshot, PraxisAssistantConversationMessage, PraxisAssistantConversationMessageRole, PraxisAssistantDigest, PraxisAssistantDockTone, PraxisAssistantGovernanceHint, PraxisAssistantIdentity, PraxisAssistantOpenRequest, PraxisAssistantOwnerType, PraxisAssistantPendingClarification, PraxisAssistantRiskLevel, PraxisAssistantSessionDescriptor, PraxisAssistantSessionIdentityRef, PraxisAssistantSessionPresence, PraxisAssistantSessionSnapshot, PraxisAssistantSessionVisibility, PraxisAssistantShellAction, PraxisAssistantShellActionTone, PraxisAssistantShellAttachment, PraxisAssistantShellContextItem, PraxisAssistantShellLabels, PraxisAssistantShellLayout, PraxisAssistantShellMessage, PraxisAssistantShellMessageAction, PraxisAssistantShellMessageRole, PraxisAssistantShellMode, PraxisAssistantShellQuickReply, PraxisAssistantShellQuickReplyEvidence, PraxisAssistantShellQuickReplyPresentation, PraxisAssistantShellQuickReplyPresentationItem, PraxisAssistantShellQuickReplyPresentationKind, PraxisAssistantShellState, PraxisAssistantTargetKind, PraxisAssistantTargetRef, PraxisAssistantTurnAction, PraxisAssistantTurnControllerOptions, PraxisAssistantTurnFlow, PraxisAssistantTurnPhase, PraxisAssistantTurnRequest, PraxisAssistantTurnResult, PraxisAssistantTurnViewState, PraxisAssistantViewportLayoutOptions, ProblemResponseContract, PromptContext, RulePropertyDefinition, RulePropertySchema, RulePropertyType, ValidationContext, ValueKind };