@praxisui/dynamic-form 8.0.0-beta.26 → 8.0.0-beta.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -542,6 +542,12 @@ Exemplo mínimo de uma coluna com campo, bloco visual e projeção `fields[]`:
542
542
 
543
543
  Guia completo: `projects/praxis-dynamic-form/docs/layout-items-visual-blocks.md`.
544
544
 
545
+ ## Authoring e Persistência em Hosts
546
+
547
+ - `configChange` preserva o contrato legado e continua emitindo `FormConfig` para consumidores diretos.
548
+ - `configPatchChange` é o output recomendado para hosts genéricos, como Page Builder e páginas dinâmicas, persistirem autoria assistida: o payload segue `{ inputPatch: { config: FormConfig } }`.
549
+ - Fluxos de IA e editores devem materializar alterações no `FormConfig` canônico do componente; o host decide onde gravar `inputs.config`.
550
+
545
551
  ## Documentacao Tecnica da Lib
546
552
 
547
553
  - `projects/praxis-dynamic-form/src/lib/praxis-dynamic-form.json-api.md`
@@ -25,9 +25,6 @@ class DynamicFormAgenticAuthoringTurnFlow {
25
25
  if (this.shouldRestrictToInlineHelp(contextHints)) {
26
26
  return this.toInlineHelpOnlyResult(prompt, request, contextHints);
27
27
  }
28
- if (this.shouldRouteToGovernedDecision(prompt, contextHints)) {
29
- return this.toGovernedDecisionHandoff(prompt, request);
30
- }
31
28
  const response = await firstValueFrom(this.aiApi.getPatch({
32
29
  componentId,
33
30
  componentType,
@@ -309,85 +306,6 @@ class DynamicFormAgenticAuthoringTurnFlow {
309
306
  ],
310
307
  };
311
308
  }
312
- shouldRouteToGovernedDecision(prompt, contextHints) {
313
- const normalized = prompt.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase();
314
- const recommendedFlow = this.toRecord(contextHints?.['domainCatalog'])?.['recommendedAuthoringFlow'];
315
- if (recommendedFlow === 'shared_rule_authoring')
316
- return true;
317
- return [
318
- 'regra',
319
- 'politica',
320
- 'policy',
321
- 'compliance',
322
- 'lgpd',
323
- 'privacidade',
324
- 'aprovacao',
325
- 'aprovar',
326
- 'publicar',
327
- 'materializar',
328
- 'enforcement',
329
- 'validacao de negocio',
330
- 'validar negocio',
331
- 'elegibilidade',
332
- 'permissao',
333
- 'acesso',
334
- ].some((term) => normalized.includes(term));
335
- }
336
- toGovernedDecisionHandoff(prompt, request) {
337
- const message = 'Esse pedido parece alterar uma decisao de negocio compartilhada. O formulario pode contextualizar campo/secao, mas a regra deve seguir pelo fluxo governado de domain-rules antes de qualquer materializacao runtime.';
338
- return {
339
- state: 'clarification',
340
- phase: 'clarify',
341
- sessionId: request.sessionId,
342
- assistantMessage: message,
343
- statusText: 'Handoff governado necessario.',
344
- canApply: false,
345
- quickReplies: [
346
- {
347
- id: 'shared-rule-handoff',
348
- label: 'Continuar como regra governada',
349
- prompt,
350
- kind: 'shared-rule-handoff',
351
- description: 'Criar intake de domain-rules em vez de aplicar regra local no formulario.',
352
- icon: 'rule',
353
- tone: 'warning',
354
- contextHints: {
355
- flowId: 'shared_rule_authoring',
356
- source: 'praxis-dynamic-form',
357
- recommendedAction: 'domain-rules/intake',
358
- },
359
- },
360
- ],
361
- clarificationQuestions: [
362
- {
363
- id: 'dynamic-form-governed-rule-confirmation',
364
- type: 'confirm',
365
- label: 'Deseja continuar pelo fluxo governado de regras compartilhadas?',
366
- description: 'Esse caminho permite intake, simulacao, aprovacao/publicacao, materializacao e validacao de enforcement.',
367
- required: true,
368
- options: [
369
- {
370
- id: 'shared-rule-handoff',
371
- label: 'Sim, continuar governado',
372
- value: prompt,
373
- description: 'Nao aplicar como patch local do formulario.',
374
- contextHints: {
375
- flowId: 'shared_rule_authoring',
376
- source: 'praxis-dynamic-form',
377
- },
378
- },
379
- ],
380
- },
381
- ],
382
- diagnostics: {
383
- governedDecisionHandoff: {
384
- flowId: 'shared_rule_authoring',
385
- sourcePrompt: prompt,
386
- sourceComponent: 'praxis-dynamic-form',
387
- },
388
- },
389
- };
390
- }
391
309
  optionalJsonObject(value) {
392
310
  if (value === undefined || value === null) {
393
311
  return undefined;