@praxisui/ai 8.0.0-beta.1 → 8.0.0-beta.100

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;
292
+ [key: string]: AiJsonValue | undefined;
293
+ }
294
+ interface AgenticAuthoringSemanticRetrievalEvidenceContract {
295
+ retrievalSource?: string | null;
296
+ evidence?: string[];
297
+ candidateCount?: number;
181
298
  [key: string]: AiJsonValue | undefined;
182
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,11 +722,125 @@ 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';
415
841
  type PraxisAssistantShellState = 'idle' | 'listening' | 'processing' | 'clarification' | 'review' | 'applying' | 'success' | 'error';
842
+ type PraxisAssistantVoiceInputMode = 'disabled' | 'browser-speech';
843
+ type PraxisAssistantVoiceCaptureState = 'unsupported' | 'idle' | 'listening' | 'stopping' | 'error';
416
844
  interface PraxisAssistantShellMessage {
417
845
  id: string;
418
846
  role: PraxisAssistantShellMessageRole;
@@ -420,20 +848,172 @@ interface PraxisAssistantShellMessage {
420
848
  status?: 'pending' | 'done' | 'error';
421
849
  editable?: boolean;
422
850
  resendable?: boolean;
851
+ observationId?: string | null;
423
852
  actions?: readonly PraxisAssistantShellMessageAction[];
424
853
  }
425
854
  interface PraxisAssistantShellQuickReply {
426
855
  id: string;
427
856
  label: string;
428
857
  prompt: string;
858
+ value?: unknown;
429
859
  kind?: string;
860
+ description?: string | null;
861
+ icon?: string | null;
862
+ tone?: string | null;
863
+ presentation?: PraxisAssistantShellQuickReplyPresentation | null;
864
+ contextHints?: Readonly<Record<string, unknown>> | null;
865
+ canonicalAction?: Readonly<Record<string, unknown>> | null;
866
+ semanticDecision?: Readonly<Record<string, unknown>> | null;
867
+ }
868
+ type PraxisAssistantShellQuickReplyPresentationKind = 'resource-candidate' | 'contextual-action' | 'governance-confirmation' | 'guided-option' | string;
869
+ interface PraxisAssistantShellQuickReplyPresentation {
870
+ kind?: PraxisAssistantShellQuickReplyPresentationKind | null;
871
+ categoryLabel?: string | null;
872
+ description?: string | null;
873
+ ctaLabel?: string | null;
874
+ icon?: string | null;
875
+ tone?: string | null;
876
+ technicalDetails?: string | null;
877
+ evidence?: readonly PraxisAssistantShellQuickReplyEvidence[];
878
+ items?: readonly PraxisAssistantShellQuickReplyPresentationItem[];
879
+ }
880
+ interface PraxisAssistantShellQuickReplyEvidence {
881
+ icon?: string | null;
882
+ value: string;
883
+ ariaLabel?: string | null;
884
+ }
885
+ interface PraxisAssistantShellQuickReplyPresentationItem {
886
+ key?: 'bestFor' | 'returns' | 'nextStep' | string;
887
+ label: string;
888
+ value: string;
889
+ icon?: string | null;
890
+ }
891
+ type PraxisAssistantOpportunityCandidateStatus = 'available' | 'missing-context' | 'already-enabled' | 'blocked' | 'not-recommended' | string;
892
+ type PraxisAssistantRecommendedIntentTone = 'neutral' | 'analytics' | 'resource' | 'success' | 'warning' | 'danger' | string;
893
+ interface PraxisAssistantOpportunityGroup {
894
+ id: string;
895
+ label: string;
896
+ description?: string | null;
897
+ rank?: number | null;
898
+ }
899
+ interface PraxisAssistantRecommendedIntentPresentation {
900
+ kind?: 'guided-card' | 'compact-chip' | 'spotlight' | string;
901
+ description?: string | null;
902
+ ctaLabel?: string | null;
903
+ icon?: string | null;
904
+ tone?: PraxisAssistantRecommendedIntentTone | null;
905
+ evidence?: readonly PraxisAssistantShellQuickReplyEvidence[];
906
+ items?: readonly PraxisAssistantShellQuickReplyPresentationItem[];
907
+ }
908
+ type PraxisAssistantRecommendedIntentAction = {
909
+ kind: 'submit-prompt';
910
+ prompt: string;
911
+ contextHints?: Readonly<Record<string, unknown>> | null;
912
+ } | {
913
+ kind: 'start-review';
914
+ operationKind: 'author' | 'execute' | string;
915
+ componentEditPlan?: Readonly<Record<string, unknown>> | null;
916
+ runtimeOperation?: Readonly<Record<string, unknown>> | null;
917
+ contextHints?: Readonly<Record<string, unknown>> | null;
918
+ } | {
919
+ kind: 'open-guidance';
920
+ topicId: string;
921
+ contextHints?: Readonly<Record<string, unknown>> | null;
922
+ } | {
923
+ kind: string;
924
+ [key: string]: unknown;
925
+ };
926
+ interface PraxisAssistantRecommendedIntent {
927
+ kind?: 'praxis.assistant.recommended-intent' | string;
928
+ id: string;
929
+ label: string;
930
+ description?: string | null;
931
+ group?: PraxisAssistantOpportunityGroup | null;
932
+ icon?: string | null;
933
+ tone?: PraxisAssistantRecommendedIntentTone | null;
934
+ presentation?: PraxisAssistantRecommendedIntentPresentation | null;
935
+ action: PraxisAssistantRecommendedIntentAction;
936
+ prompt?: string | null;
937
+ contextHints?: Readonly<Record<string, unknown>> | null;
938
+ sourceCandidateIds?: readonly string[];
939
+ rank?: number | null;
940
+ confidence?: number | null;
941
+ requiresConfirmation?: boolean;
942
+ disabledReason?: string | null;
943
+ }
944
+ interface PraxisAssistantOpportunityEvidence {
945
+ kind: 'component-state' | 'metadata' | 'selection' | 'capability' | 'usage' | 'host' | string;
946
+ label?: string | null;
947
+ value?: string | number | boolean | null;
948
+ details?: Readonly<Record<string, unknown>> | null;
949
+ }
950
+ interface PraxisAssistantOpportunityTarget {
951
+ kind: 'component' | 'field' | 'record-surface' | 'action' | 'navigation' | 'export' | string;
952
+ id: string;
953
+ label?: string | null;
954
+ componentId?: string | null;
955
+ field?: string | null;
956
+ surfaceId?: string | null;
957
+ capabilityId?: string | null;
958
+ metadata?: Readonly<Record<string, unknown>> | null;
959
+ }
960
+ interface PraxisAssistantOpportunityMissingContext {
961
+ id: string;
962
+ label: string;
963
+ reason?: string | null;
964
+ required?: boolean;
965
+ }
966
+ interface PraxisAssistantOpportunitySafety {
967
+ requiresConfirmation?: boolean;
968
+ destructive?: boolean;
969
+ reason?: string | null;
970
+ }
971
+ interface PraxisAssistantOpportunityCandidate {
972
+ id: string;
973
+ label: string;
974
+ description?: string | null;
975
+ group?: PraxisAssistantOpportunityGroup | null;
976
+ target: PraxisAssistantOpportunityTarget;
977
+ status?: PraxisAssistantOpportunityCandidateStatus;
978
+ rank?: number | null;
979
+ confidence?: number | null;
980
+ evidence?: readonly PraxisAssistantOpportunityEvidence[];
981
+ missingContext?: readonly PraxisAssistantOpportunityMissingContext[];
982
+ safety?: PraxisAssistantOpportunitySafety | null;
983
+ recommendedIntent?: PraxisAssistantRecommendedIntent | null;
984
+ metadata?: Readonly<Record<string, unknown>> | null;
985
+ }
986
+ interface PraxisAssistantOpportunityCatalog {
987
+ componentId: string;
988
+ componentKind?: string | null;
989
+ generatedAt?: string | null;
990
+ stateHash?: string | null;
991
+ candidates: readonly PraxisAssistantOpportunityCandidate[];
992
+ groups?: readonly PraxisAssistantOpportunityGroup[];
993
+ metadata?: Readonly<Record<string, unknown>> | null;
430
994
  }
431
995
  interface PraxisAssistantShellMessageAction {
432
996
  id: string;
433
997
  label: string;
434
998
  kind?: 'edit' | 'resend' | 'copy' | 'custom' | string;
999
+ icon?: string | null;
1000
+ ariaLabel?: string | null;
1001
+ iconOnly?: boolean;
435
1002
  disabled?: boolean;
436
1003
  }
1004
+ type PraxisAssistantShellActionTone = 'primary' | 'secondary' | 'governance' | 'success' | 'warning' | 'danger' | 'neutral' | string;
1005
+ interface PraxisAssistantShellAction {
1006
+ id: string;
1007
+ label: string;
1008
+ kind?: 'submit-prompt' | 'apply' | 'retry' | 'cancel' | 'simulate' | 'review' | 'publish' | 'materialize' | 'correct' | 'custom' | string;
1009
+ icon?: string | null;
1010
+ tone?: PraxisAssistantShellActionTone | null;
1011
+ disabled?: boolean;
1012
+ requiresPrompt?: boolean;
1013
+ testId?: string | null;
1014
+ ariaLabel?: string | null;
1015
+ iconOnly?: boolean;
1016
+ }
437
1017
  interface PraxisAssistantShellContextItem {
438
1018
  id: string;
439
1019
  label: string;
@@ -459,6 +1039,13 @@ interface PraxisAssistantShellLayout {
459
1039
  width: number;
460
1040
  height: number;
461
1041
  }
1042
+ interface PraxisAssistantViewportLayoutOptions {
1043
+ width?: number;
1044
+ height?: number;
1045
+ top?: number;
1046
+ margin?: number;
1047
+ }
1048
+ declare function createPraxisAssistantViewportLayout(options?: PraxisAssistantViewportLayoutOptions): PraxisAssistantShellLayout;
462
1049
  interface PraxisAssistantShellLabels {
463
1050
  title: string;
464
1051
  subtitle?: string;
@@ -470,14 +1057,30 @@ interface PraxisAssistantShellLabels {
470
1057
  apply: string;
471
1058
  conversationAria: string;
472
1059
  quickRepliesAria: string;
1060
+ quickReplyDetails?: string;
1061
+ recommendedIntentsAria: string;
1062
+ recommendedIntentsTitle: string;
1063
+ recommendedIntentCta: string;
1064
+ recommendedIntentGuidanceCta: string;
1065
+ recommendedIntentRequiresConfirmation: string;
473
1066
  dragHandleAria: string;
474
1067
  resizeHandleAria: string;
1068
+ resetLayout?: string;
475
1069
  contextAria: string;
476
1070
  attachmentsAria: string;
477
1071
  attach: string;
478
1072
  removeAttachment: string;
479
1073
  editMessage: string;
480
1074
  resendMessage: string;
1075
+ feedbackPositive: string;
1076
+ feedbackNegative: string;
1077
+ feedbackSubmitted: string;
1078
+ voiceStart?: string;
1079
+ voiceStop?: string;
1080
+ voiceListening?: string;
1081
+ voiceUnsupported?: string;
1082
+ voicePermissionDenied?: string;
1083
+ voiceNoSpeech?: string;
481
1084
  modeConfig: string;
482
1085
  modeAgenticAuthoring: string;
483
1086
  modeChat: string;
@@ -501,7 +1104,11 @@ interface PraxisAssistantClarificationOption {
501
1104
  label: string;
502
1105
  value: string;
503
1106
  description?: string;
1107
+ displayPrompt?: string;
1108
+ example?: string;
504
1109
  contextHints?: Record<string, unknown>;
1110
+ canonicalAction?: Record<string, unknown>;
1111
+ semanticDecision?: Record<string, unknown>;
505
1112
  }
506
1113
  interface PraxisAssistantClarificationQuestion {
507
1114
  id: string;
@@ -516,6 +1123,7 @@ interface PraxisAssistantTurnAction {
516
1123
  kind: 'submit' | 'clarify' | 'apply' | 'cancel' | 'retry' | 'edit-message' | 'resend-message' | 'attach' | 'remove-attachment' | string;
517
1124
  id?: string;
518
1125
  value?: unknown;
1126
+ displayPrompt?: string;
519
1127
  contextHints?: Record<string, unknown>;
520
1128
  }
521
1129
  interface PraxisAssistantPendingClarification {
@@ -524,7 +1132,15 @@ interface PraxisAssistantPendingClarification {
524
1132
  assistantMessage?: string;
525
1133
  clientTurnId?: string;
526
1134
  diagnostics?: Record<string, unknown>;
1135
+ observationId?: string | null;
1136
+ }
1137
+ type PraxisAssistantConversationMessageRole = 'user' | 'assistant' | 'system';
1138
+ interface PraxisAssistantConversationMessage {
1139
+ id: string;
1140
+ role: PraxisAssistantConversationMessageRole;
1141
+ text: string;
527
1142
  }
1143
+ declare function toPraxisAssistantConversationMessages(messages: readonly PraxisAssistantShellMessage[], limit?: number): PraxisAssistantConversationMessage[];
528
1144
  interface PraxisAssistantTurnRequest {
529
1145
  mode: PraxisAssistantShellMode;
530
1146
  phase?: PraxisAssistantTurnPhase;
@@ -545,6 +1161,8 @@ interface PraxisAssistantTurnRequest {
545
1161
  preview?: unknown;
546
1162
  pendingPatch?: unknown;
547
1163
  pendingClarification?: PraxisAssistantPendingClarification;
1164
+ diagnostics?: Record<string, unknown>;
1165
+ observationId?: string | null;
548
1166
  }
549
1167
  interface PraxisAssistantTurnResult {
550
1168
  state: PraxisAssistantShellState;
@@ -564,6 +1182,7 @@ interface PraxisAssistantTurnResult {
564
1182
  sessionId?: string;
565
1183
  clientTurnId?: string;
566
1184
  diagnostics?: Record<string, unknown>;
1185
+ observationId?: string | null;
567
1186
  }
568
1187
  interface PraxisAssistantTurnViewState {
569
1188
  mode: PraxisAssistantShellMode;
@@ -583,6 +1202,7 @@ interface PraxisAssistantTurnViewState {
583
1202
  pendingPatch?: unknown;
584
1203
  pendingClarification?: PraxisAssistantPendingClarification;
585
1204
  diagnostics?: Record<string, unknown>;
1205
+ observationId?: string | null;
586
1206
  }
587
1207
  interface PraxisAssistantTurnFlow {
588
1208
  readonly mode: PraxisAssistantShellMode;
@@ -617,6 +1237,31 @@ interface AiResponseCompileResult {
617
1237
  message?: string;
618
1238
  warnings?: string[];
619
1239
  }
1240
+ type AiAuthoringResponseModeKind = 'consult' | 'edit' | string;
1241
+ interface AiAuthoringResponseMode {
1242
+ kind: AiAuthoringResponseModeKind;
1243
+ operationKind?: 'consult' | 'author' | 'edit' | string;
1244
+ changeKind?: 'answer' | string;
1245
+ preferredResponse?: string;
1246
+ useWhen?: string[];
1247
+ rules?: string[];
1248
+ }
1249
+ interface AiConsultativeAuthoringContext {
1250
+ [key: string]: unknown;
1251
+ resourcePath?: string | null;
1252
+ answerableQuestionKinds?: string[];
1253
+ }
1254
+ interface AiComponentAuthoringContract {
1255
+ [key: string]: unknown;
1256
+ kind: 'praxis.component-authoring-context' | string;
1257
+ componentId?: string;
1258
+ componentType?: string;
1259
+ preferredResponse?: string;
1260
+ responseModes?: AiAuthoringResponseMode[];
1261
+ consultativeContext?: AiConsultativeAuthoringContext;
1262
+ }
1263
+ declare function createComponentAuthoringContext(authoringContract: AiComponentAuthoringContract): AiJsonObject;
1264
+ declare function toAiJsonObject(value: unknown, path?: string): AiJsonObject;
620
1265
  /**
621
1266
  * Contrato fundamental para qualquer componente que suporte configuração via IA.
622
1267
  * O Agente de IA usa esta interface para Ler (Introspecção) e Escrever (Patching) no componente.
@@ -669,6 +1314,12 @@ interface AiConfigAdapter<TConfig = any> {
669
1314
  * Usado para sugestões heurísticas mais precisas no backend.
670
1315
  */
671
1316
  getSchemaFields?(): Record<string, any>[];
1317
+ /**
1318
+ * Prepara contexto assíncrono necessário antes de montar snapshots para IA.
1319
+ * Ex.: uma tabela pode carregar o schema canônico de filtros antes de expor
1320
+ * o contrato de authoring ao backend.
1321
+ */
1322
+ prepareAuthoringContext?(): Promise<void> | void;
672
1323
  /**
673
1324
  * Retorna contexto declarativo adicional para authoring assistido por IA.
674
1325
  * Deve conter contratos validaveis e instrucoes especificas do componente
@@ -734,6 +1385,17 @@ declare abstract class BaseAiAdapter<TConfig = any> implements AiConfigAdapter<T
734
1385
  protected getCriticalWarnings(patch: any): string[];
735
1386
  }
736
1387
 
1388
+ interface AiGovernedDecisionRoutingOptions {
1389
+ localCompositionTerms?: readonly string[];
1390
+ }
1391
+ /**
1392
+ * @deprecated Component assistants must not infer governed authoring from user
1393
+ * wording. Route through the backend semantic resolver and use this only for
1394
+ * explicit, structured context provided by a canonical backend source.
1395
+ */
1396
+ declare function shouldRoutePromptToGovernedDecision(prompt: string, contextHints?: AiJsonObject, options?: AiGovernedDecisionRoutingOptions): boolean;
1397
+ declare function normalizeAuthoringPrompt(prompt: string): string;
1398
+
737
1399
  interface FieldSchemaLike {
738
1400
  label: string;
739
1401
  type: string;
@@ -784,8 +1446,6 @@ declare class PraxisAiService {
784
1446
  generateContentStream(prompt: string, modelName?: string): Observable<string>;
785
1447
  generateJson<T>(prompt: string, modelName?: string, schema?: any): Observable<T | null>;
786
1448
  isMockMode(): boolean;
787
- private extractUserIntent;
788
- private getMockPatch;
789
1449
  listModels(apiKey?: string): Observable<AiModel[]>;
790
1450
  testConnection(apiKey?: string, model?: string): Observable<boolean>;
791
1451
  private resolveProvider;
@@ -795,7 +1455,7 @@ declare class PraxisAiService {
795
1455
  }
796
1456
 
797
1457
  declare const AI_INTENT_CONTRACT_VERSION: "v1.1";
798
- declare const AI_INTENT_CONTRACT_SCHEMA_HASH: "922e6d48637e64b403562d6d7cb833ed4942ffb0b452ec3573255871f4ec8739";
1458
+ declare const AI_INTENT_CONTRACT_SCHEMA_HASH: "41767dafdf6ebea802c083d77187ad6612937d6831188938dc21adce384b57a2";
799
1459
  type AiSchemaContext = AiSchemaContextContract;
800
1460
  interface AiSuggestionsRequest {
801
1461
  componentId: string;
@@ -828,10 +1488,22 @@ type AiPatchStreamEventType = AiPatchStreamEventType$1;
828
1488
  type AiPatchStreamStartResponse = AiPatchStreamStartResponseContract;
829
1489
  type AiPatchStreamCancelResponse = AiPatchStreamCancelResponseContract;
830
1490
  type AiPatchStreamEnvelope<TPayload extends AiJsonObject = AiJsonObject> = AiPatchStreamEnvelopeContract<TPayload>;
1491
+ type AgenticAuthoringManifestEditPlanRequest = AgenticAuthoringManifestEditPlanRequestContract;
1492
+ type AgenticAuthoringResolveTargetRequest = AgenticAuthoringResolveTargetRequestContract;
1493
+ type AgenticAuthoringResolvedTarget = AgenticAuthoringResolvedTargetContract;
1494
+ type AgenticAuthoringManifestValidationResult = AgenticAuthoringManifestValidationResultContract;
1495
+ type AgenticAuthoringManifestCompileResult = AgenticAuthoringManifestCompileResultContract;
1496
+ type AgenticAuthoringTurnStreamRequest = AgenticAuthoringTurnStreamRequestContract;
1497
+ type AgenticAuthoringTurnStreamStartResponse = AgenticAuthoringTurnStreamStartResponseContract;
1498
+ type AgenticAuthoringTurnStreamEnvelope<TPayload extends AiJsonObject = AiJsonObject> = AgenticAuthoringTurnStreamEnvelopeContract<TPayload>;
831
1499
  interface AiPatchStreamConnection {
832
1500
  events$: Observable<AiPatchStreamEnvelope>;
833
1501
  close: () => void;
834
1502
  }
1503
+ interface AgenticAuthoringTurnStreamConnection {
1504
+ events$: Observable<AgenticAuthoringTurnStreamEnvelope>;
1505
+ close: () => void;
1506
+ }
835
1507
  type AiPatchStreamConnectionErrorKind = 'unsupported' | 'http_status' | 'transport' | 'parse' | 'schema';
836
1508
  declare class AiPatchStreamConnectionError extends Error {
837
1509
  readonly kind: AiPatchStreamConnectionErrorKind;
@@ -882,6 +1554,9 @@ interface AiProviderStatusResponse {
882
1554
  success?: boolean;
883
1555
  message?: string;
884
1556
  }
1557
+ type AiAssistantObservationFeedbackRatingValue = AiAssistantObservationFeedbackRating;
1558
+ type AiAssistantObservationFeedbackRequest = AiAssistantObservationFeedbackRequestContract;
1559
+ type AiAssistantObservationFeedbackResponse = AiAssistantObservationFeedbackResponseContract;
885
1560
  interface AiContextTemplateMeta {
886
1561
  variants?: Array<{
887
1562
  id?: string;
@@ -924,34 +1599,73 @@ interface AiBackendStorageOptions {
924
1599
  defaultHeaders?: Record<string, string>;
925
1600
  allowLocalIdentityFallback?: boolean;
926
1601
  }
1602
+ interface AiBackendEndpoints {
1603
+ /**
1604
+ * Explicit base URL for `/praxis/config/ai/**`.
1605
+ * Hosts should normally prefer the shared `API_URL.default.baseUrl`; use this
1606
+ * only when AI orchestration is served by a distinct gateway.
1607
+ */
1608
+ aiBaseUrl?: string;
1609
+ /**
1610
+ * Explicit base URL for `/praxis/config/ai-context/**`.
1611
+ * When omitted, the service derives it from `API_URL.default.baseUrl`.
1612
+ */
1613
+ aiContextBaseUrl?: string;
1614
+ }
927
1615
  declare const AI_BACKEND_CONFIG_STORE: InjectionToken<AiBackendConfigStore>;
928
1616
  declare const AI_BACKEND_STORAGE_OPTIONS: InjectionToken<AiBackendStorageOptions>;
1617
+ declare const AI_BACKEND_ENDPOINTS: InjectionToken<AiBackendEndpoints>;
929
1618
  declare class AiBackendApiService {
930
1619
  private readonly http;
931
1620
  private readonly globalConfigStore;
932
1621
  private readonly storageOpts;
933
- private readonly baseUrl;
934
- private readonly contextUrl;
1622
+ private readonly endpointOpts;
1623
+ private readonly apiUrlConfig;
1624
+ private readonly fallbackAiBaseUrl;
1625
+ private readonly fallbackAiContextBaseUrl;
935
1626
  getSuggestions(request: AiSuggestionsRequest): Observable<AiSuggestionsResponse>;
936
1627
  getPatch(request: AiOrchestratorRequest): Observable<AiOrchestratorResponse>;
937
1628
  startPatchStream(request: AiOrchestratorRequest): Observable<AiPatchStreamStartResponse>;
938
1629
  connectPatchStream(streamId: string, lastEventId?: string, accessToken?: string): AiPatchStreamConnection;
939
1630
  cancelPatchStream(streamId: string, accessToken?: string): Observable<AiPatchStreamCancelResponse>;
1631
+ startAgenticAuthoringTurnStream(request: AgenticAuthoringTurnStreamRequest): Observable<AgenticAuthoringTurnStreamStartResponse>;
1632
+ connectAgenticAuthoringTurnStream(streamId: string, lastEventId?: string, accessToken?: string): AgenticAuthoringTurnStreamConnection;
1633
+ cancelAgenticAuthoringTurnStream(streamId: string, accessToken?: string): Observable<AiPatchStreamCancelResponse>;
1634
+ sendAssistantObservationFeedback(observationId: string, request: AiAssistantObservationFeedbackRequest): Observable<AiAssistantObservationFeedbackResponse>;
940
1635
  listModels(request: AiProviderModelsRequest): Observable<AiProviderModelsResponse>;
941
1636
  listProviderCatalog(): Observable<AiProviderCatalogResponse>;
942
1637
  testProvider(request: AiProviderTestRequest): Observable<AiProviderTestResponse>;
943
1638
  getAiStatus(): Observable<AiProviderStatusResponse>;
944
1639
  getAiContext(componentId: string, componentType: string): Observable<AiContextDTO>;
1640
+ getAgenticAuthoringManifest(componentId: string): Observable<AiJsonObject>;
1641
+ listAgenticAuthoringManifestTargets(componentId: string): Observable<AiJsonObject[]>;
1642
+ listAgenticAuthoringManifestOperations(componentId: string): Observable<AiJsonObject[]>;
1643
+ resolveAgenticAuthoringManifestTarget(componentId: string, request: AgenticAuthoringResolveTargetRequest): Observable<AgenticAuthoringResolvedTarget>;
1644
+ validateAgenticAuthoringManifestPlan(componentId: string, request: AgenticAuthoringManifestEditPlanRequest): Observable<AgenticAuthoringManifestValidationResult>;
1645
+ compileAgenticAuthoringManifestPatch(componentId: string, request: AgenticAuthoringManifestEditPlanRequest): Observable<AgenticAuthoringManifestCompileResult>;
945
1646
  loadGlobalAiConfig(): Observable<AiGlobalConfigSnapshot | null>;
946
1647
  saveGlobalAiConfig(aiConfig: AiGlobalConfigSnapshot): Observable<void>;
947
1648
  getHeaderContext(): AiHeaderContext;
948
1649
  private buildHeaders;
949
1650
  private normalizeContractVersion;
950
1651
  private normalizeContractSchemaHash;
1652
+ private normalizeLegacyPatchConversationIds;
1653
+ private normalizeConversationUuid;
1654
+ private isUuid;
1655
+ private authoringManifestUrl;
1656
+ private aiBaseUrl;
1657
+ private aiContextBaseUrl;
1658
+ private resolveBaseUrl;
1659
+ private resolveApiBaseUrl;
1660
+ private joinUrl;
1661
+ private normalizeBaseUrl;
1662
+ private buildApiUrl;
951
1663
  private resolveHeaderMap;
952
1664
  private parsePatchStreamEnvelope;
953
1665
  private isPatchStreamEnvelope;
954
1666
  private isJsonObject;
1667
+ private registerNamedStreamEventListeners;
1668
+ private isTerminalStreamEventType;
955
1669
  private probePatchStreamEndpoint;
956
1670
  static ɵfac: i0.ɵɵFactoryDeclaration<AiBackendApiService, never>;
957
1671
  static ɵprov: i0.ɵɵInjectableDeclaration<AiBackendApiService>;
@@ -973,6 +1687,7 @@ declare class AiResponseValidatorService {
973
1687
  private validateJsonLogicExpression;
974
1688
  private walkJsonLogicNode;
975
1689
  private isSupportedJsonLogicOperator;
1690
+ private validateJsonLogicOperatorArity;
976
1691
  private collectVarPaths;
977
1692
  private isValidTargetId;
978
1693
  private findSimilarTargetId;
@@ -1005,8 +1720,10 @@ declare class PraxisAssistantTurnController {
1005
1720
  private readonly options;
1006
1721
  private readonly stateSubject;
1007
1722
  readonly state$: Observable<PraxisAssistantTurnViewState>;
1723
+ private activeFlowClientTurnId;
1008
1724
  constructor(flow: PraxisAssistantTurnFlow, options: PraxisAssistantTurnControllerOptions);
1009
1725
  snapshot(): PraxisAssistantTurnViewState;
1726
+ setContextHints(hints: Record<string, unknown> | undefined): void;
1010
1727
  setContextItems(items: readonly PraxisAssistantShellContextItem[]): void;
1011
1728
  setMessages(messages: readonly PraxisAssistantShellMessage[]): void;
1012
1729
  setAttachments(attachments: readonly PraxisAssistantShellAttachment[]): void;
@@ -1017,6 +1734,7 @@ declare class PraxisAssistantTurnController {
1017
1734
  submitEditedMessage(messageId: string, text: string): Observable<PraxisAssistantTurnViewState>;
1018
1735
  submitPrompt(prompt: string, action?: PraxisAssistantTurnAction): Observable<PraxisAssistantTurnViewState>;
1019
1736
  answerClarification(option: PraxisAssistantClarificationOption | string): Observable<PraxisAssistantTurnViewState>;
1737
+ private semanticClarificationContextHints;
1020
1738
  apply(): Observable<PraxisAssistantTurnViewState>;
1021
1739
  retry(): Observable<PraxisAssistantTurnViewState>;
1022
1740
  cancel(): Observable<PraxisAssistantTurnViewState>;
@@ -1025,6 +1743,10 @@ declare class PraxisAssistantTurnController {
1025
1743
  private submitExistingUserMessage;
1026
1744
  private findUserMessageIndex;
1027
1745
  private resetReplayState;
1746
+ private resetActiveTurnState;
1747
+ private shouldApplyFlowResult;
1748
+ private resetConversationState;
1749
+ private resetConversationAfterCancel;
1028
1750
  private applyResult;
1029
1751
  private resolveSubmitAction;
1030
1752
  private buildPendingClarification;
@@ -1032,10 +1754,85 @@ declare class PraxisAssistantTurnController {
1032
1754
  private resolveMessageRole;
1033
1755
  private resolvePhase;
1034
1756
  private buildMessage;
1757
+ private shouldAttachObservationId;
1035
1758
  private createId;
1036
1759
  private patchState;
1037
1760
  private cloneState;
1038
1761
  private toObservable;
1762
+ private buildFlowErrorResult;
1763
+ private describeFlowError;
1764
+ private serializeFlowError;
1765
+ private toRecord;
1766
+ private toString;
1767
+ private toNumber;
1768
+ }
1769
+
1770
+ declare function toPraxisAssistantClarificationOption(reply: PraxisAssistantShellQuickReply): PraxisAssistantClarificationOption;
1771
+ declare function submitPraxisAssistantQuickReply(controller: PraxisAssistantTurnController, reply: PraxisAssistantShellQuickReply): Observable<PraxisAssistantTurnViewState>;
1772
+
1773
+ type PraxisAssistantSessionVisibility = 'active' | 'minimized';
1774
+ type PraxisAssistantSessionPresence = 'global-dock' | 'origin-anchor';
1775
+ interface PraxisAssistantSessionDescriptor {
1776
+ id: string;
1777
+ ownerId: string;
1778
+ ownerType: string;
1779
+ title: string;
1780
+ summary?: string | null;
1781
+ mode?: PraxisAssistantShellMode | null;
1782
+ state?: PraxisAssistantShellState | null;
1783
+ visibility?: PraxisAssistantSessionVisibility | null;
1784
+ contextItems?: readonly PraxisAssistantShellContextItem[] | null;
1785
+ contextSnapshot?: PraxisAssistantContextSnapshot | null;
1786
+ badge?: string | null;
1787
+ icon?: string | null;
1788
+ presence?: PraxisAssistantSessionPresence | null;
1789
+ updatedAt?: string | null;
1790
+ }
1791
+ interface PraxisAssistantSessionSnapshot {
1792
+ id: string;
1793
+ ownerId: string;
1794
+ ownerType: string;
1795
+ title: string;
1796
+ summary: string;
1797
+ mode: PraxisAssistantShellMode;
1798
+ state: PraxisAssistantShellState;
1799
+ visibility: PraxisAssistantSessionVisibility;
1800
+ contextItems: readonly PraxisAssistantShellContextItem[];
1801
+ contextSnapshot: PraxisAssistantContextSnapshot | null;
1802
+ badge: string;
1803
+ icon: string;
1804
+ presence: PraxisAssistantSessionPresence;
1805
+ createdAt: string;
1806
+ updatedAt: string;
1807
+ }
1808
+ type PraxisAssistantSessionIdentityRef = string | PraxisAssistantIdentity | PraxisAssistantContextSnapshot;
1809
+ type PraxisAssistantContextSessionDescriptor = Omit<PraxisAssistantSessionDescriptor, 'id' | 'ownerId' | 'ownerType' | 'title' | 'contextSnapshot'> & {
1810
+ title?: string;
1811
+ };
1812
+ declare class PraxisAssistantSessionRegistryService {
1813
+ private readonly sessionsState;
1814
+ readonly sessions: i0.Signal<PraxisAssistantSessionSnapshot[]>;
1815
+ readonly activeSession: i0.Signal<PraxisAssistantSessionSnapshot | null>;
1816
+ readonly minimizedSessions: i0.Signal<PraxisAssistantSessionSnapshot[]>;
1817
+ upsertSession(descriptor: PraxisAssistantSessionDescriptor): PraxisAssistantSessionSnapshot;
1818
+ upsertContextSession(contextSnapshot: PraxisAssistantContextSnapshot, descriptor?: PraxisAssistantContextSessionDescriptor): PraxisAssistantSessionSnapshot;
1819
+ openSession(sessionId: string): PraxisAssistantSessionSnapshot | null;
1820
+ openContextSession(identity: PraxisAssistantSessionIdentityRef): PraxisAssistantSessionSnapshot | null;
1821
+ minimizeSession(sessionId: string): PraxisAssistantSessionSnapshot | null;
1822
+ minimizeContextSession(identity: PraxisAssistantSessionIdentityRef): PraxisAssistantSessionSnapshot | null;
1823
+ removeSession(sessionId: string): void;
1824
+ removeContextSession(identity: PraxisAssistantSessionIdentityRef): void;
1825
+ getSession(sessionId: string): PraxisAssistantSessionSnapshot | null;
1826
+ getContextSession(identity: PraxisAssistantSessionIdentityRef): PraxisAssistantSessionSnapshot | null;
1827
+ clear(): void;
1828
+ private setVisibility;
1829
+ private resolveSessionId;
1830
+ private normalizeDescriptor;
1831
+ private assertContextIdentity;
1832
+ private toShellContextItems;
1833
+ private sortSessions;
1834
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAssistantSessionRegistryService, never>;
1835
+ static ɵprov: i0.ɵɵInjectableDeclaration<PraxisAssistantSessionRegistryService>;
1039
1836
  }
1040
1837
 
1041
1838
  type AssistantMessageRole = 'user' | 'assistant' | 'system';
@@ -1077,7 +1874,7 @@ interface ClarificationOption {
1077
1874
  value: string;
1078
1875
  example?: string;
1079
1876
  }
1080
- type ClarificationContextHints = AiJsonObject;
1877
+ type ClarificationContextHints = AiContextHintsContract;
1081
1878
  interface ClarificationRichOption extends ClarificationOption {
1082
1879
  contextHints?: ClarificationContextHints;
1083
1880
  }
@@ -1092,6 +1889,7 @@ declare class PraxisAiAssistantComponent implements OnDestroy {
1092
1889
  adapter: AiConfigAdapter;
1093
1890
  riskPolicy: RiskPolicy | null;
1094
1891
  allowManualPatchEdit: boolean;
1892
+ hasBackdrop: boolean;
1095
1893
  readonly overlayPositions: ConnectedPosition[];
1096
1894
  overlayOrigin: CdkOverlayOrigin;
1097
1895
  triggerButton?: ElementRef<HTMLButtonElement>;
@@ -1411,6 +2209,7 @@ declare class PraxisAiAssistantComponent implements OnDestroy {
1411
2209
  private hasBadgeColors;
1412
2210
  private hasBadgeField;
1413
2211
  private mergeContextHints;
2212
+ private enrichDomainCatalogAuthoringHints;
1414
2213
  private setResourcePathHint;
1415
2214
  private clearResourcePathHint;
1416
2215
  private matchClarificationOptionPath;
@@ -1463,9 +2262,19 @@ declare class PraxisAiAssistantComponent implements OnDestroy {
1463
2262
  private restoreFocusToTrigger;
1464
2263
  private normalizeError;
1465
2264
  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>;
2265
+ 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
2266
  }
1468
2267
 
2268
+ type ResizeDirection = 'n' | 's' | 'e' | 'w' | 'ne' | 'nw' | 'se' | 'sw';
2269
+ type QuickReplyPresentationItem = PraxisAssistantShellQuickReplyPresentationItem & {
2270
+ key: 'bestFor' | 'returns' | 'nextStep' | string;
2271
+ icon: string;
2272
+ };
2273
+ interface QuickReplyContextChip {
2274
+ icon: string;
2275
+ value: string;
2276
+ ariaLabel: string;
2277
+ }
1469
2278
  declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1470
2279
  labels: Partial<PraxisAssistantShellLabels> | null;
1471
2280
  mode: PraxisAssistantShellMode;
@@ -1474,6 +2283,7 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1474
2283
  attachments: readonly PraxisAssistantShellAttachment[];
1475
2284
  messages: readonly PraxisAssistantShellMessage[];
1476
2285
  quickReplies: readonly PraxisAssistantShellQuickReply[];
2286
+ recommendedIntents: readonly PraxisAssistantRecommendedIntent[];
1477
2287
  prompt: string;
1478
2288
  statusText: string;
1479
2289
  errorText: string;
@@ -1481,13 +2291,22 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1481
2291
  panelTestId: string;
1482
2292
  submitTestId: string;
1483
2293
  applyTestId: string;
2294
+ primaryAction: PraxisAssistantShellAction | null;
2295
+ secondaryActions: readonly PraxisAssistantShellAction[];
2296
+ governanceActions: readonly PraxisAssistantShellAction[];
1484
2297
  busy: boolean;
1485
2298
  canSubmit: boolean;
1486
2299
  canApply: boolean;
1487
2300
  submitOnEnter: boolean;
2301
+ showAttachAction: boolean;
2302
+ enablePastedAttachments: boolean;
1488
2303
  enableFileAttachments: boolean;
1489
2304
  attachmentAccept: string;
1490
2305
  attachmentMultiple: boolean;
2306
+ private readonly defaultVoiceInputMode;
2307
+ private readonly defaultVoiceLanguage;
2308
+ voiceInputMode: PraxisAssistantVoiceInputMode;
2309
+ voiceLanguage: string;
1491
2310
  draggable: boolean;
1492
2311
  resizable: boolean;
1493
2312
  minWidth: number;
@@ -1497,6 +2316,9 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1497
2316
  promptChange: EventEmitter<string>;
1498
2317
  submitPrompt: EventEmitter<string>;
1499
2318
  apply: EventEmitter<void>;
2319
+ retryTurn: EventEmitter<void>;
2320
+ cancelTurn: EventEmitter<void>;
2321
+ shellAction: EventEmitter<PraxisAssistantShellAction>;
1500
2322
  close: EventEmitter<void>;
1501
2323
  attach: EventEmitter<void>;
1502
2324
  attachmentsPasted: EventEmitter<PraxisAssistantShellAttachment[]>;
@@ -1509,15 +2331,24 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1509
2331
  editMessage: EventEmitter<PraxisAssistantShellMessage>;
1510
2332
  resendMessage: EventEmitter<PraxisAssistantShellMessage>;
1511
2333
  quickReply: EventEmitter<PraxisAssistantShellQuickReply>;
2334
+ recommendedIntent: EventEmitter<PraxisAssistantRecommendedIntent>;
1512
2335
  layoutChange: EventEmitter<PraxisAssistantShellLayout>;
1513
2336
  panel?: ElementRef<HTMLElement>;
1514
2337
  conversation?: ElementRef<HTMLElement>;
1515
2338
  private readonly cdr;
2339
+ private readonly injector;
2340
+ private readonly browserSpeech;
1516
2341
  protected currentPrompt: string;
1517
2342
  protected resolvedLabels: PraxisAssistantShellLabels;
2343
+ protected voiceCaptureState: PraxisAssistantVoiceCaptureState;
2344
+ protected voiceFeedbackText: string;
1518
2345
  protected currentLayout: PraxisAssistantShellLayout;
2346
+ protected readonly resizeHandles: readonly ResizeDirection[];
1519
2347
  private pointerSession;
1520
2348
  private readonly ownedPreviewUrls;
2349
+ private readonly submittedFeedbackObservationIds;
2350
+ private voiceCaptureSequence;
2351
+ private destroyed;
1521
2352
  private readonly onWindowPointerMove;
1522
2353
  private readonly onWindowPointerUp;
1523
2354
  ngOnChanges(changes: SimpleChanges): void;
@@ -1526,26 +2357,103 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1526
2357
  protected onSubmit(): void;
1527
2358
  protected onPromptKeydown(event: KeyboardEvent): void;
1528
2359
  protected onPromptPaste(event: ClipboardEvent): void;
2360
+ protected onVoiceInputClick(): void;
2361
+ protected shouldShowVoiceInput(): boolean;
2362
+ protected isVoiceInputDisabled(): boolean;
2363
+ protected isVoiceInputBusy(): boolean;
2364
+ protected getVoiceActionLabel(): string;
2365
+ protected shouldShowVoiceFeedback(): boolean;
2366
+ private canUseBrowserSpeech;
2367
+ private cancelVoiceCapture;
2368
+ private isCurrentVoiceCapture;
2369
+ private applyVoiceTranscript;
2370
+ private resolveVoiceErrorText;
2371
+ private getVoiceLabel;
1529
2372
  protected onAttachClick(fileInput: HTMLInputElement): void;
1530
2373
  protected onAttachmentFilesSelected(event: Event): void;
1531
2374
  protected onApply(): void;
2375
+ protected renderMessageText(text: string | null | undefined): string;
2376
+ private renderInlineMarkdown;
2377
+ private escapeHtml;
2378
+ protected shouldShowStatusText(): boolean;
2379
+ protected shouldShowErrorText(): boolean;
2380
+ protected onShellAction(action: PraxisAssistantShellAction): void;
2381
+ protected getPrimaryAction(): PraxisAssistantShellAction;
2382
+ protected getSecondaryActions(): readonly PraxisAssistantShellAction[];
2383
+ protected getPrimaryActionTooltip(action: PraxisAssistantShellAction): string;
2384
+ protected isShellActionDisabled(action: PraxisAssistantShellAction): boolean;
2385
+ protected getShellActionTone(action: PraxisAssistantShellAction): string;
2386
+ protected trackShellAction(_index: number, action: PraxisAssistantShellAction): string;
2387
+ private hasRecoverableTurn;
2388
+ private shouldShowAuxiliaryText;
2389
+ private normalizeMessageText;
2390
+ private getDefaultPrimaryAction;
1532
2391
  protected onQuickReply(reply: PraxisAssistantShellQuickReply): void;
2392
+ protected shouldShowRecommendedIntents(): boolean;
2393
+ protected onRecommendedIntent(intent: PraxisAssistantRecommendedIntent): void;
2394
+ protected isRecommendedIntentDisabled(intent: PraxisAssistantRecommendedIntent): boolean;
2395
+ protected getRecommendedIntentAriaLabel(intent: PraxisAssistantRecommendedIntent): string;
2396
+ protected getRecommendedIntentDescription(intent: PraxisAssistantRecommendedIntent): string;
2397
+ protected getRecommendedIntentCtaLabel(intent: PraxisAssistantRecommendedIntent): string;
2398
+ protected getRecommendedIntentIcon(intent: PraxisAssistantRecommendedIntent): string;
2399
+ protected getRecommendedIntentTone(intent: PraxisAssistantRecommendedIntent): string;
2400
+ protected getRecommendedIntentGroupLabel(intent: PraxisAssistantRecommendedIntent): string;
2401
+ protected getQuickReplyAriaLabel(reply: PraxisAssistantShellQuickReply): string;
2402
+ protected getQuickReplyTechnicalDetails(reply: PraxisAssistantShellQuickReply): string;
2403
+ protected isRichQuickReply(reply: PraxisAssistantShellQuickReply): boolean;
2404
+ protected shouldUseInlineQuickReplies(): boolean;
2405
+ protected getQuickReplyDescription(reply: PraxisAssistantShellQuickReply): string;
2406
+ protected getQuickReplyContextChips(reply: PraxisAssistantShellQuickReply): readonly QuickReplyContextChip[];
2407
+ protected getQuickReplyPresentationItems(reply: PraxisAssistantShellQuickReply): readonly QuickReplyPresentationItem[];
2408
+ private defaultQuickReplyPresentation;
2409
+ protected getQuickReplyCategoryLabel(reply: PraxisAssistantShellQuickReply): string;
2410
+ protected getQuickReplyIcon(reply: PraxisAssistantShellQuickReply): string;
2411
+ protected getQuickReplyCtaLabel(reply: PraxisAssistantShellQuickReply): string;
2412
+ protected getQuickReplyTone(reply: PraxisAssistantShellQuickReply): string;
2413
+ private normalizeQuickReplyTone;
2414
+ private asRecord;
2415
+ private stringHint;
2416
+ private quickReplyHint;
2417
+ private hasQuickReplyResourceContext;
2418
+ private isFieldDiscoveryQuickReply;
2419
+ protected isContextualPreviewActionQuickReply(reply: PraxisAssistantShellQuickReply): boolean;
2420
+ protected isGuidedActionQuickReply(reply: PraxisAssistantShellQuickReply): boolean;
2421
+ private quickReplyPresentation;
2422
+ private quickReplyPresentationKind;
2423
+ private presentationEvidenceToChip;
2424
+ private getContextualActionChips;
2425
+ private isGenericContextualActionDescription;
2426
+ private trimSentencePunctuation;
2427
+ private shortPathLabel;
2428
+ private shortTechnicalLabel;
2429
+ protected getCloseIcon(): string;
2430
+ private normalizeShellAction;
1533
2431
  protected onRemoveAttachment(attachment: PraxisAssistantShellAttachment): void;
1534
2432
  protected onMessageAction(message: PraxisAssistantShellMessage, action: PraxisAssistantShellMessageAction): void;
2433
+ protected canSendMessageFeedback(message: PraxisAssistantShellMessage): boolean;
2434
+ protected isMessageFeedbackSubmitted(message: PraxisAssistantShellMessage): boolean;
2435
+ protected sendMessageFeedback(message: PraxisAssistantShellMessage, rating: AiAssistantObservationFeedbackRatingValue): void;
2436
+ private resolveAiApi;
2437
+ protected getMessageActionIcon(action: PraxisAssistantShellMessageAction): string;
2438
+ protected getMessageActionLabel(action: PraxisAssistantShellMessageAction): string;
2439
+ protected isMessageActionIconOnly(action: PraxisAssistantShellMessageAction): boolean;
1535
2440
  protected getModeLabel(): string;
1536
2441
  protected getStateLabel(): string;
1537
2442
  protected startDrag(event: PointerEvent): void;
1538
- protected startResize(event: PointerEvent): void;
2443
+ protected startResize(direction: ResizeDirection, event: PointerEvent): void;
2444
+ protected trackResizeHandle(_index: number, direction: ResizeDirection): ResizeDirection;
1539
2445
  protected trackMessage(_index: number, message: PraxisAssistantShellMessage): string;
1540
2446
  protected trackMessageAction(_index: number, action: PraxisAssistantShellMessageAction): string;
1541
2447
  protected trackQuickReply(_index: number, reply: PraxisAssistantShellQuickReply): string;
2448
+ protected trackRecommendedIntent(_index: number, intent: PraxisAssistantRecommendedIntent): string;
1542
2449
  protected trackContextItem(_index: number, item: PraxisAssistantShellContextItem): string;
1543
2450
  protected trackAttachment(_index: number, attachment: PraxisAssistantShellAttachment): string;
1544
2451
  private startPointerSession;
1545
2452
  private handlePointerMove;
2453
+ private resizeLayout;
1546
2454
  private finishPointerSession;
1547
2455
  private detachPointerListeners;
1548
- private resolveBounds;
2456
+ private resolveViewportBounds;
1549
2457
  private normalizeLayout;
1550
2458
  private clampLayout;
1551
2459
  private clamp;
@@ -1557,7 +2465,55 @@ declare class PraxisAiAssistantShellComponent implements OnChanges, OnDestroy {
1557
2465
  private revokeAllOwnedPreviewUrls;
1558
2466
  private revokeOwnedPreviewUrl;
1559
2467
  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>;
2468
+ 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; }; "recommendedIntents": { "alias": "recommendedIntents"; "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; }; "voiceInputMode": { "alias": "voiceInputMode"; "required": false; }; "voiceLanguage": { "alias": "voiceLanguage"; "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"; "recommendedIntent": "recommendedIntent"; "layoutChange": "layoutChange"; }, never, never, true, never>;
2469
+ }
2470
+
2471
+ declare const PRAXIS_ASSISTANT_VOICE_INPUT_MODE: InjectionToken<PraxisAssistantVoiceInputMode>;
2472
+ declare const PRAXIS_ASSISTANT_VOICE_LANGUAGE: InjectionToken<string>;
2473
+
2474
+ type PraxisAssistantDockTone = 'ready' | 'working' | 'review' | 'governed' | 'error';
2475
+ declare class PraxisAiAssistantDockComponent {
2476
+ title: string;
2477
+ summary: string;
2478
+ badge: string;
2479
+ icon: string;
2480
+ state: PraxisAssistantShellState | null;
2481
+ tone: PraxisAssistantDockTone | null;
2482
+ ariaLabel: string;
2483
+ openAriaLabel: string;
2484
+ openTooltip: string;
2485
+ testId: string;
2486
+ openTestId: string;
2487
+ open: EventEmitter<void>;
2488
+ resolvedTone(): PraxisAssistantDockTone;
2489
+ resolvedIcon(): string;
2490
+ resolvedBadge(): string;
2491
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAiAssistantDockComponent, never>;
2492
+ 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>;
2493
+ }
2494
+
2495
+ declare class PraxisAiAssistantSessionHostComponent {
2496
+ private readonly registry;
2497
+ testId: string;
2498
+ dockTestIdPrefix: string;
2499
+ ariaLabel: string;
2500
+ openAriaLabel: string;
2501
+ openTooltip: string;
2502
+ ownerType: string | null;
2503
+ ownerId: string | null;
2504
+ visibility: PraxisAssistantSessionVisibility | 'all';
2505
+ includeOriginAnchored: boolean;
2506
+ sessionOpen: EventEmitter<PraxisAssistantSessionSnapshot>;
2507
+ visibleSessions(): readonly PraxisAssistantSessionSnapshot[];
2508
+ openSession(sessionId: string): void;
2509
+ sessionAriaLabel(session: PraxisAssistantSessionSnapshot): string;
2510
+ dockTestId(session: PraxisAssistantSessionSnapshot, first: boolean): string;
2511
+ dockOpenTestId(session: PraxisAssistantSessionSnapshot, first: boolean): string;
2512
+ trackSession(_index: number, session: PraxisAssistantSessionSnapshot): string;
2513
+ private safeId;
2514
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAiAssistantSessionHostComponent, never>;
2515
+ 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>;
2516
+ static ngAcceptInputType_includeOriginAnchored: unknown;
1561
2517
  }
1562
2518
 
1563
2519
  declare class AiContextBuilderService {
@@ -1566,7 +2522,7 @@ declare class AiContextBuilderService {
1566
2522
  /**
1567
2523
  * Builds the complete context for the AI prompt
1568
2524
  */
1569
- buildPromptContext(fieldSchemas: Record<string, FieldSchemaLike>, targetType: 'field' | 'section' | 'action' | 'row' | 'column', propertySchema: RulePropertySchema): PromptContext;
2525
+ buildPromptContext(fieldSchemas: Record<string, FieldSchemaLike>, targetType: 'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock', propertySchema: RulePropertySchema): PromptContext;
1570
2526
  buildRulePrompt(userPrompt: string, context: PromptContext): string;
1571
2527
  buildSuggestionPrompt(context: PromptContext): string;
1572
2528
  /**
@@ -1595,7 +2551,7 @@ declare class AiRuleWizardDialogComponent implements OnInit {
1595
2551
  private snackBar;
1596
2552
  private contextBuilder;
1597
2553
  private cdr;
1598
- selectedTargetType: 'field' | 'section' | 'action' | 'row' | 'column';
2554
+ selectedTargetType: 'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock';
1599
2555
  userPrompt: string;
1600
2556
  isGenerating: boolean;
1601
2557
  validationError: string | null;
@@ -1631,5 +2587,5 @@ declare class AiRuleWizardDialogComponent implements OnInit {
1631
2587
  static ɵcmp: i0.ɵɵComponentDeclaration<AiRuleWizardDialogComponent, "praxis-ai-rule-wizard-dialog", never, {}, {}, never, never, true, never>;
1632
2588
  }
1633
2589
 
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 };
2590
+ 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, PRAXIS_ASSISTANT_VOICE_INPUT_MODE, PRAXIS_ASSISTANT_VOICE_LANGUAGE, PraxisAi, PraxisAiAssistantComponent, PraxisAiAssistantDockComponent, PraxisAiAssistantSessionHostComponent, PraxisAiAssistantShellComponent, PraxisAiService, PraxisAssistantSessionRegistryService, PraxisAssistantTurnController, PraxisAssistantTurnOrchestratorService, SchemaMinifierService, createComponentAuthoringContext, createPraxisAssistantViewportLayout, normalizeAuthoringPrompt, normalizePraxisAssistantAttachmentSummary, normalizePraxisAssistantContextSnapshot, sanitizePraxisAssistantText, shouldRoutePromptToGovernedDecision, submitPraxisAssistantQuickReply, toAiJsonObject, toPraxisAssistantClarificationOption, toPraxisAssistantConversationMessages };
2591
+ 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, PraxisAssistantOpportunityCandidate, PraxisAssistantOpportunityCandidateStatus, PraxisAssistantOpportunityCatalog, PraxisAssistantOpportunityEvidence, PraxisAssistantOpportunityGroup, PraxisAssistantOpportunityMissingContext, PraxisAssistantOpportunitySafety, PraxisAssistantOpportunityTarget, PraxisAssistantOwnerType, PraxisAssistantPendingClarification, PraxisAssistantRecommendedIntent, PraxisAssistantRecommendedIntentAction, PraxisAssistantRecommendedIntentPresentation, PraxisAssistantRecommendedIntentTone, 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, PraxisAssistantVoiceCaptureState, PraxisAssistantVoiceInputMode, ProblemResponseContract, PromptContext, RulePropertyDefinition, RulePropertySchema, RulePropertyType, ValidationContext, ValueKind };