@wildo-ai/saas-models 1.1.1 → 1.1.3
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/dist/esm/applications/applications-context.schemas.d.ts +16 -10
- package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js +4 -3
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +36 -0
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.js +8 -1
- package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +0 -4
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.js +59 -17
- package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts +77 -21
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js +85 -23
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts +5 -5
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +39 -0
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts +6 -6
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.js +8 -4
- package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +35 -0
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.js +8 -3
- package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
- package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.schemas.js +7 -1
- package/dist/esm/billing/price.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js +52 -11
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js +7 -3
- package/dist/esm/billing/product.shared.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +2 -2
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js +54 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts +4 -4
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.js +6 -2
- package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.js +39 -0
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.d.ts +11 -7
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +29 -6
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +69 -2
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js +20 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +85 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +157 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +35 -2
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +23 -0
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +56 -0
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +541 -20
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +605 -23
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +96 -3
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts +49 -0
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js +124 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +11 -3
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +11 -3
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +94 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +211 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +67 -12
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +95 -8
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +17 -0
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js +27 -4
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts +89 -16
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js +101 -15
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js +12 -5
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +21 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.js +20 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +9 -5
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.js +29 -0
- package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +8 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.js +29 -0
- package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +95 -17
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js +86 -8
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +12 -12
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +33 -0
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.js +32 -0
- package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +40 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +40 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +57 -11
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +109 -64
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +200 -19
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts +15 -3
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +32 -7
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +84 -7
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +59 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +61 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +97 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +41 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -0
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +148 -2
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +56 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +9 -31
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +8 -5
- package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +18 -8
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +9 -4
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +338 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +332 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +178 -9
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js +181 -9
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +7 -5
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js +7 -5
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts +40 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js +80 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -0
- package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.js +7 -1
- package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
- package/dist/esm/features/feature-builders.shared.d.ts +32 -0
- package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-builders.shared.js +32 -0
- package/dist/esm/features/feature-builders.shared.js.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.js +48 -0
- package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts +156 -0
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -0
- package/dist/esm/files/file-upload-grant.shared.schemas.js +175 -0
- package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -0
- package/dist/esm/files/files.shared.schemas.d.ts +52 -4
- package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.schemas.js +55 -4
- package/dist/esm/files/files.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js +33 -0
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js +6 -2
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js +53 -0
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts +54 -5
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +6 -6
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +0 -3
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.js +0 -5
- package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js +43 -0
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +14 -0
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +48 -6
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js +41 -0
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts +0 -7
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js +23 -13
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +19 -0
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +33 -0
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts +14 -9
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +14 -9
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +128 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +142 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -3
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +1 -4
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts +0 -16
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js +1 -17
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +3 -3
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js +3 -3
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +2 -8
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +4 -15
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js +51 -0
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.js +8 -2
- package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.js +1 -0
- package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js +51 -0
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js +28 -3
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +9 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js +51 -0
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts +46 -0
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js +67 -4
- package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +356 -52
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +166 -39
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +11 -2
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts +15 -0
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.js +15 -0
- package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts +70 -0
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -0
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js +71 -0
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js.map +1 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +19 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +30 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +65 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts +6 -4
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.js +6 -4
- package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.d.ts +167 -5
- package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.js +191 -6
- package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js +36 -0
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts +107 -0
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js +149 -1
- package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +44 -0
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js +15 -4
- package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js +22 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +26 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js +25 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +25 -0
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js +42 -17
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +3 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +35 -12
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/public-runtime/index.d.ts +49 -2
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js +48 -1
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +6 -5
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js +23 -5
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +16 -3
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +16 -3
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts +137 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.js +1201 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts +67 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js +78 -0
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts +11 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js +11 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts +86 -4
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +138 -0
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/collection-query-parameters.shared.d.ts +22 -0
- package/dist/esm/resources/collection-query-parameters.shared.d.ts.map +1 -0
- package/dist/esm/resources/collection-query-parameters.shared.js +22 -0
- package/dist/esm/resources/collection-query-parameters.shared.js.map +1 -0
- package/dist/esm/resources/resources-config.shared.factory.d.ts +1 -0
- package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.js +189 -31
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +395 -92
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js +109 -20
- package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.js +97 -5
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.js +15 -0
- package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts +37 -0
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js +51 -0
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts +11 -2
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js +34 -3
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts +51 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.js +53 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -0
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +21 -6
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.d.ts +16 -2
- package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.js +19 -5
- package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js +11 -0
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts +25 -0
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +38 -0
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +38 -0
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +4 -11
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +0 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +141 -5
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js +147 -3
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts +17 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js +16 -0
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts +28 -0
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts.map +1 -0
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js +28 -0
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js.map +1 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js +11 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +15 -0
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +21 -4
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts +21 -0
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js +21 -0
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -0
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +61 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +208 -6
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts +37 -27
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +134 -12
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +0 -6
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +17 -8
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +70 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +45 -8
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +56 -10
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +16 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js +16 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts +54 -0
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.js +59 -0
- package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +31 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +198 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +31 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +191 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +250 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +486 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -0
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +4 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +29 -0
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +4 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +29 -0
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +67 -0
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +44 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js +35 -0
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts +13 -0
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js +31 -4
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +34 -0
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.js +7 -4
- package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.js +37 -0
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.js +17 -2
- package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js +36 -0
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.js +15 -5
- package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +5 -5
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.js +53 -0
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.js +62 -0
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +5 -5
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js +53 -0
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js +62 -0
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.js +33 -3
- package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts +17 -1
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.js +136 -5
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts +62 -12
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +79 -23
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -6
- package/dist/esm/.builder.pid +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliberation.shared.schemas.js","sourceRoot":"","sources":["../../../../src/flows-actors/deliberation.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nimport { FlowsActors_IO_PartKind } from \"./flows-actors.io.shared.schemas\";\n\n//===============================================================\n// Expert-Persona Deliberation — shared contracts\n// ------------------------------------------------------------\n// The GENERIC vocabulary of the agentic deliberation system: narrow\n// expert personas (derived per-app from the specification tier) review\n// candidate work products against a DERIVED evaluation rubric across\n// bounded critique-revise rounds, a coordinator synthesizes, a human\n// decides.\n//\n// TIER SPLIT (dependency direction — do not blur):\n// - The DERIVED artifacts (`ExpertRoleTemplate`, `ExpertPersonaCharter`)\n// live in `@wildo-ai/saas-specifications` `_core/expert-personas/`\n// (spec tier — committed, human-reviewable). `saas-backend-lib` can\n// NEVER import them (specifications sits BELOW backend-lib in the\n// graph).\n// - THIS file is the runtime-visible half: the enums the spec family\n// imports (single-sourced here — `ExpertWorkDomain`), the\n// `RuntimeExpertProfile` projection the COMPANION maps a charter into\n// before handing it to engine machinery, and the rubric / verdict /\n// deliberation-record contracts the engine round loop operates on.\n//\n// KEY DESIGN DECISION (the anti-\"taste-as-code\" contract): evaluation\n// CRITERIA ARE DATA, not schema fields. The rubric is derived per\n// deliberation run by an expert persona and travels in the judge PROMPT;\n// the verdict schema below stays FIXED and GENERIC (criterion-ref-keyed\n// score array), so one schema serves every work domain and every derived\n// rubric while remaining strict-structured-output compatible (flat,\n// all-required, no dynamic keys). Weighted aggregation is DETERMINISTIC\n// CODE (`aggregateWeightedScore`) — never model arithmetic — and\n// hallucinated criterion refs are rejected fail-closed\n// (`validateVerdictCriterionRefs`).\n//===============================================================\n\n/**\n * The narrow work-product domain an expert persona is specialized on —\n * the ROUTING AXIS of the narrowness principle. An expert declares a\n * small closed set of domains; the deliberation orchestrator REFUSES to\n * invoke an expert outside its declared domains (fail-closed).\n *\n * Deliberate design: agent personas are NARROW, unlike human employees\n * who wear several hats. A review needing three angles convenes three\n * experts + a coordinator, never one generalist.\n *\n * Single-sourced HERE (the spec-tier `expert-personas` family imports\n * this enum) so the vocabulary cannot drift across tiers. Extend\n * per-capability as new deliberation domains ship — never speculatively.\n */\nexport enum ExpertWorkDomain {\n /** Visual brand marks: logo symbols, icons, brand imagery. */\n VISUAL_BRAND_MARK = \"visual_brand_mark\",\n /** Marketing / product copy: website sections, email prose, taglines. */\n MARKETING_COPY = \"marketing_copy\",\n /** UI/design-system coherence: tokens, palette, typography discipline. */\n UI_DESIGN_COHERENCE = \"ui_design_coherence\",\n /** Brand strategy: positioning fit, differentiation, ICP resonance. */\n BRAND_STRATEGY = \"brand_strategy\",\n /**\n * Information architecture: WHERE a destination, operation or view belongs in\n * the application shell — surface assignment, grouping, ordering, findability.\n *\n * Distinct from {@link UI_DESIGN_COHERENCE}, which is tokens, palette and\n * typography discipline. A settings section can be perfectly on-palette and\n * still be in the wrong place; \"can a user find this, and does it sit with the\n * things it belongs with\" is a different question with a different expert.\n *\n * Added 2026-08-29, when placement became a deliberated decision rather than a\n * framework default — per this enum's rule, per-capability and never\n * speculatively.\n */\n INFORMATION_ARCHITECTURE = \"information_architecture\",\n}\n\n/**\n * A reviewer's headline recommendation for one candidate. Deliberately\n * the same three-state vocabulary as the interim brand accept judge —\n * accept as-is / fixable via revision / materially misses the brief.\n */\nexport enum DeliberationRecommendation {\n /** The candidate satisfies the rubric and can win as-is. */\n ACCEPT = \"accept\",\n /** Close, but has fixable concerns — revise before it can win. */\n REVISE = \"revise\",\n /** Materially misses the rubric — should not survive the shortlist. */\n REJECT = \"reject\",\n}\n\n/** How a candidate entered a round's candidate set. */\nexport enum DeliberationCandidateProvenance {\n /** Produced in round 1 from the creative brief. */\n ORIGINAL = \"original\",\n /** Produced by a critique-driven revision of a prior candidate. */\n REVISED = \"revised\",\n}\n\n/** Terminal + live states of a deliberation. */\nexport enum DeliberationStatus {\n /** Rounds are still executing. */\n RUNNING = \"running\",\n /** The coordinator judged the outcome converged before budget. */\n CONVERGED = \"converged\",\n /** The round budget was exhausted; synthesis used the last round. */\n BUDGET_EXHAUSTED = \"budget_exhausted\",\n /** The deliberation could not complete (provider/validation failure). */\n FAILED = \"failed\",\n /**\n * Every candidate was REJECTED by the panel. There is no winner, and that is a\n * RESULT — not a failure.\n *\n * Distinct from {@link FAILED}, which means the machinery could not complete;\n * here it completed and the answer is \"none of these\". Distinct from\n * {@link CONVERGED}, which asserts a winner. Collapsing rejection into either\n * would be the defect this state exists to remove: a coordinator asked to pick a\n * winner will pick one, so without a terminal rejection the least-bad candidate\n * of a uniformly rejected field lands carrying the panel's authority.\n *\n * A record in this state carries no `synthesis`. The caller decides what to do —\n * retry with a new brief, widen the candidate set, or surface the critiques —\n * because only the caller knows whether \"none of these\" is recoverable.\n */\n REJECTED = \"rejected\",\n}\n\n/**\n * The runtime projection of an `ExpertPersonaCharter` — everything the\n * engine deliberation machinery needs of a persona, WITHOUT importing the\n * spec tier (same pattern as the runtime brand-asset siblings). The\n * COMPANION (which imports both tiers) maps charter → profile when\n * composing a deliberation plan, and builds the expert's agent from it at\n * startup (fail-closed when the charter is missing/unaccepted).\n */\nconst _RuntimeExpertProfileSchema = z.object({\n /** The committed charter this profile projects (audit back-pointer). */\n charterRef: z.string().min(1),\n /** The framework role template the charter was derived from. */\n roleRef: z.string().min(1),\n /** The narrow domains this expert may produce briefs / reviews for. */\n workDomains: z.array(z.enum(ExpertWorkDomain)).min(1),\n /** The compiled app-specific persona prose (\"who I am for THIS app\"). */\n personaProse: z.string().min(1),\n /** Ordered priorities the persona judges by (highest first). */\n priorities: z.array(z.string().min(1)).min(1),\n /** Hard taboos — things this persona must never reward or produce. */\n taboos: z.array(z.string().min(1)).default([]),\n /**\n * What a top-tier candidate looks like for this app (rubric scale-anchor\n * seeds). Mirrors the charter's optional Lever-2 extension.\n */\n qualityBar: z.array(z.string().min(1)).optional(),\n /** The persona's ordered review checks (systematic judging method). */\n reviewProtocol: z.array(z.string().min(1)).optional(),\n});\nexport const RuntimeExpertProfileSchema: typeof _RuntimeExpertProfileSchema =\n _RuntimeExpertProfileSchema;\nexport type RuntimeExpertProfile = z.infer<typeof _RuntimeExpertProfileSchema>;\n\n/**\n * One derived evaluation criterion. `ref` is the join key verdicts score\n * against; `weight` feeds the DETERMINISTIC aggregation (never model\n * arithmetic); `scaleAnchors` pin what the scale ends MEAN so two\n * reviewers score commensurably.\n */\nconst _EvaluationCriterionSchema = z.object({\n /** Stable kebab-case key verdict scores reference (e.g. `favicon-legibility`). */\n ref: z.string().min(1),\n /** What is being evaluated, in one or two sentences. */\n description: z.string().min(1),\n /**\n * Relative importance, > 0 and FINITE. Normalization happens in\n * `aggregateWeightedScore` (weights need not sum to anything);\n * `.finite()` closes the Infinity/Infinity → NaN aggregate hole.\n */\n weight: z.number().positive().finite(),\n /** What the scale extremes mean — pins reviewer calibration. */\n scaleAnchors: z.object({\n /** What a 0 looks like for this criterion. */\n low: z.string().min(1),\n /** What a 100 looks like for this criterion. */\n high: z.string().min(1),\n }),\n});\nexport const EvaluationCriterionSchema: typeof _EvaluationCriterionSchema =\n _EvaluationCriterionSchema;\nexport type EvaluationCriterion = z.infer<typeof _EvaluationCriterionSchema>;\n\n/**\n * The DERIVED rubric a deliberation evaluates against. Derived ONCE at\n * deliberation start by the responsible expert persona (per-run — locked\n * decision), held CONSTANT across that deliberation's rounds (revise\n * targets must not move mid-discussion), and EMBEDDED in the\n * `DeliberationRecord` (auditability without a standalone artifact).\n * Never persisted as its own resource.\n */\nconst _EvaluationRubricSchema = z.object({\n /** The work domain this rubric evaluates. */\n workDomain: z.enum(ExpertWorkDomain),\n /** The charter of the expert who derived the rubric. */\n derivedFromCharterRef: z.string().min(1),\n /** The derived criteria (the DATA that replaces hardcoded score fields). */\n criteria: z.array(_EvaluationCriterionSchema).min(1),\n /** ISO-8601 derivation moment. */\n derivedAt: z.iso.datetime(),\n}).refine(\n (rubric) => new Set(rubric.criteria.map((criterion) => criterion.ref)).size === rubric.criteria.length,\n {\n // The rubric is LLM-DERIVED data — a model emitting the same ref twice\n // (with different weights) is a plausible output, and a duplicated ref\n // would silently DOUBLE-WEIGHT that criterion in the aggregate. Reject\n // at parse; `validateVerdictCriterionRefs` re-checks as defense for\n // in-process-constructed rubrics that skipped parsing.\n message: 'criteria[].ref must be unique — a duplicated ref would silently double-weight it in the aggregate.',\n path: ['criteria'],\n },\n);\nexport const EvaluationRubricSchema: typeof _EvaluationRubricSchema =\n _EvaluationRubricSchema;\nexport type EvaluationRubric = z.infer<typeof _EvaluationRubricSchema>;\n\n/**\n * One criterion score inside a verdict. `criterionRef` MUST match a\n * rubric criterion — enforced fail-closed by\n * `validateVerdictCriterionRefs` (a hallucinated ref rejects the verdict,\n * one retry with the error surfaced, then the reviewer is dropped from\n * the round with a quorum note).\n */\nconst _RubricScoreSchema = z.object({\n /** The rubric criterion this score answers. */\n criterionRef: z.string().min(1),\n /** 0–100 against the criterion's scale anchors. */\n score: z.number().min(0).max(100),\n /** One crisp sentence grounding the score in what was observed. */\n note: z.string().min(1),\n});\nexport const RubricScoreSchema: typeof _RubricScoreSchema = _RubricScoreSchema;\nexport type RubricScore = z.infer<typeof _RubricScoreSchema>;\n\n/**\n * One actionable critique inside a verdict — the REVISION FUEL. The\n * producer's revise step compiles the shortlist's critiques into the\n * revision (text: rewrite the draft; image: a regeneration prompt\n * addendum — the image transport has no edit operation).\n */\nconst _RubricCritiqueSchema = z.object({\n /** Which aspect of the candidate the critique targets. */\n targetAspect: z.string().min(1),\n /** What is wrong, grounded in the rubric/persona view. */\n critique: z.string().min(1),\n /** The concrete change that would address it. */\n suggestion: z.string().min(1),\n});\nexport const RubricCritiqueSchema: typeof _RubricCritiqueSchema =\n _RubricCritiqueSchema;\nexport type RubricCritique = z.infer<typeof _RubricCritiqueSchema>;\n\n/**\n * One reviewer's verdict on one candidate — the GENERIC,\n * strict-structured-output-safe judge contract (flat, all-required,\n * ref-keyed; \"nothing to report\" is an empty array, never an absent key).\n * This is the schema handed to the LLM; the rubric it scores against\n * travels in the PROMPT.\n */\nconst _RubricVerdictSchema = z.object({\n /** The reviewing expert's charter ref. */\n reviewerCharterRef: z.string().min(1),\n /** The candidate under review. */\n candidateRef: z.string().min(1),\n /** One score per rubric criterion (validated fail-closed, both ways). */\n scores: z.array(_RubricScoreSchema).min(1),\n /** Headline recommendation. */\n recommendation: z.enum(DeliberationRecommendation),\n /**\n * Actionable critiques (revision fuel). REQUIRED — \"no critiques\" is an\n * explicit empty array, never an absent key: this schema is handed to the\n * LLM, and the strict structured-output transport rejects any non-required\n * property (a `.default()` would emit one). The prompt contract mandates\n * `[]`, not the schema.\n */\n critiques: z.array(_RubricCritiqueSchema),\n /** The reviewer's overall reading of the candidate, one short paragraph. */\n overallNote: z.string().min(1),\n});\nexport const RubricVerdictSchema: typeof _RubricVerdictSchema =\n _RubricVerdictSchema;\nexport type RubricVerdict = z.infer<typeof _RubricVerdictSchema>;\n\n/**\n * One candidate as it exists inside a round's candidate set — a\n * DISCRIMINATED UNION on `provenance` so the audit invariant is enforced by\n * the schema, not by convention: a `REVISED` candidate MUST carry both\n * `revisedFromRef` and `revisionPrompt` (\"every revision is reproducible\n * from the record\"), while an `ORIGINAL` candidate carries neither.\n */\nconst _DeliberationCandidateOriginalSchema = z.object({\n /** Stable candidate ref (unique within the deliberation). */\n ref: z.string().min(1),\n /** Produced in round 1 from the creative brief. */\n provenance: z.literal(DeliberationCandidateProvenance.ORIGINAL),\n /**\n * Where the candidate's payload lives (staging-relative path or\n * artifact locator). The record stores locators, never payload bytes.\n */\n storageRef: z.string().min(1),\n});\nconst _DeliberationCandidateRevisedSchema = z.object({\n /** Stable candidate ref (unique within the deliberation). */\n ref: z.string().min(1),\n /** Produced by a critique-driven revision of a prior candidate. */\n provenance: z.literal(DeliberationCandidateProvenance.REVISED),\n /** The candidate this one revises. REQUIRED for revisions. */\n revisedFromRef: z.string().min(1),\n /**\n * The compiled revision instruction (text) or regeneration prompt\n * (image) — REQUIRED so every revision is reproducible from the record.\n */\n revisionPrompt: z.string().min(1),\n /** Where the candidate's payload lives (locator, never bytes). */\n storageRef: z.string().min(1),\n});\nconst _DeliberationCandidateSchema = z.discriminatedUnion('provenance', [\n _DeliberationCandidateOriginalSchema,\n _DeliberationCandidateRevisedSchema,\n]);\nexport const DeliberationCandidateSchema: typeof _DeliberationCandidateSchema =\n _DeliberationCandidateSchema;\nexport type DeliberationCandidate = z.infer<typeof _DeliberationCandidateSchema>;\n\n/**\n * One critique-revise round: the candidate set reviewed, every verdict\n * collected, and the coordinator's shortlist (the COST SPINE — round 1\n * reviews the full set, the coordinator shortlists top-K, rounds 2+\n * operate on the shortlist only; the panel never re-litigates eliminated\n * options).\n */\nconst _DeliberationRoundSchema = z.object({\n /** 1-based round number. */\n roundNumber: z.number().int().min(1),\n /** The candidates reviewed this round. */\n candidateSet: z.array(_DeliberationCandidateSchema).min(1),\n /** Every reviewer verdict collected this round (dissent preserved). */\n verdicts: z.array(_RubricVerdictSchema),\n /** The coordinator's shortlist feeding the next round (absent on the final round). */\n shortlistRefs: z.array(z.string().min(1)).optional(),\n});\nexport const DeliberationRoundSchema: typeof _DeliberationRoundSchema =\n _DeliberationRoundSchema;\nexport type DeliberationRound = z.infer<typeof _DeliberationRoundSchema>;\n\n/** A dissenting position preserved in the synthesis (never averaged away). */\nconst _DeliberationDissentSchema = z.object({\n /** The dissenting expert's charter ref. */\n charterRef: z.string().min(1),\n /** The dissenting position, in the expert's own terms. */\n position: z.string().min(1),\n});\nexport const DeliberationDissentSchema: typeof _DeliberationDissentSchema =\n _DeliberationDissentSchema;\nexport type DeliberationDissent = z.infer<typeof _DeliberationDissentSchema>;\n\n/**\n * The coordinator's synthesis — the \"manager's\" decision over the panel:\n * a winner, the grounded rationale, and every preserved dissent.\n * ADVISORY: the human decision seam on the record is the authority.\n */\nconst _DeliberationSynthesisSchema = z.object({\n /** The winning candidate ref. */\n winnerRef: z.string().min(1),\n /** Why the winner beats the field, grounded in verdicts + rubric. */\n rationale: z.string().min(1),\n /**\n * Dissenting positions, preserved verbatim. REQUIRED — unanimity is an\n * explicit empty array (the coordinator's synthesis is LLM-generated;\n * same strict structured-output discipline as the verdict's `critiques`).\n */\n dissent: z.array(_DeliberationDissentSchema),\n});\nexport const DeliberationSynthesisSchema: typeof _DeliberationSynthesisSchema =\n _DeliberationSynthesisSchema;\nexport type DeliberationSynthesis = z.infer<typeof _DeliberationSynthesisSchema>;\n\n/**\n * DETERMINISTIC lens accounting for the winner — computed by the machinery from the\n * final round's verdicts, never asked of a model.\n *\n * The floor and the coverage rules guarantee the winner was scored by every required\n * lens. What they cannot show is HOW those lenses split, and that is the difference\n * between consensus and a bare majority: \"two lenses accepted\" and \"one accepted, one\n * wanted revision\" produce an identical `synthesis`, because the coordinator writes\n * prose and prose can round a split into agreement.\n *\n * Kept OUT of {@link DeliberationSynthesis} on purpose. That object is model-generated;\n * a count that can be generated is a count that can be wrong, and the whole point here\n * is a number a reader can trust without re-reading every verdict.\n */\nconst _DeliberationConcurrenceSchema = z.object({\n /** The candidate these counts describe. */\n winnerRef: z.string().min(1),\n /** Distinct reviewer lenses that scored the winner. */\n lensCount: z.number().int().min(0),\n /** How those lenses split. Unanimity is `accept === lensCount`. */\n byRecommendation: z.object({\n accept: z.number().int().min(0),\n revise: z.number().int().min(0),\n reject: z.number().int().min(0),\n }),\n});\nexport const DeliberationConcurrenceSchema: typeof _DeliberationConcurrenceSchema =\n _DeliberationConcurrenceSchema;\nexport type DeliberationConcurrence = z.infer<typeof _DeliberationConcurrenceSchema>;\n\n/** Who sat at the table. */\nconst _DeliberationParticipantsSchema = z.object({\n /** The producing agent (image/text generator) — an agent ref, not a charter. */\n producerAgentRef: z.string().min(1),\n /** The reviewing experts' charter refs (the panel). */\n reviewerCharterRefs: z.array(z.string().min(1)).min(1),\n /** The coordinating expert's charter ref (synthesis + shortlist + convergence). */\n coordinatorCharterRef: z.string().min(1),\n});\nexport const DeliberationParticipantsSchema: typeof _DeliberationParticipantsSchema =\n _DeliberationParticipantsSchema;\nexport type DeliberationParticipants = z.infer<typeof _DeliberationParticipantsSchema>;\n\n/** The human decision over an advisory synthesis (the actual authority). */\nconst _DeliberationHumanDecisionSchema = z.object({\n /** What the human decided (accepted ref, override, or rejection note). */\n decision: z.string().min(1),\n /** ISO-8601 decision moment. */\n decidedAt: z.iso.datetime(),\n});\nexport const DeliberationHumanDecisionSchema: typeof _DeliberationHumanDecisionSchema =\n _DeliberationHumanDecisionSchema;\nexport type DeliberationHumanDecision = z.infer<typeof _DeliberationHumanDecisionSchema>;\n\n/**\n * The full minutes of one deliberation — rubric (embedded, constant),\n * participants, every round with every verdict, the synthesis, and the\n * human decision seam.\n *\n * PERSISTENCE: a deliberation is a BUILD-TIME companion artifact. The\n * engine machinery RETURNS this record and never persists it; the\n * companion writes it to its staging area\n * (`.wildo-saas/generated/deliberations/`). It is deliberately NOT hosted\n * on the flows-actors execution resources (`user`/`organization`/`applicationFlowActorExecutions`)\n * — those are scope-owned RUNTIME data (conversational history), the wrong tier\n * for build-time creative decisions.\n */\nconst _DeliberationRecordSchema = z.object({\n /** Unique deliberation id (companion-minted). */\n deliberationRef: z.string().min(1),\n /** The work domain deliberated. */\n workDomain: z.enum(ExpertWorkDomain),\n /**\n * The candidate payload modality. Drives the revision path: TEXT\n * revises the draft; IMAGE regenerates with a critique addendum (the\n * image transport has no edit operation). Other kinds are fail-closed\n * at execution until they have honest transports.\n */\n subjectKind: z.enum(FlowsActors_IO_PartKind),\n /** The derived rubric (embedded; constant across this record's rounds). */\n rubric: _EvaluationRubricSchema,\n participants: _DeliberationParticipantsSchema,\n /** The rounds, in order. Appended as the deliberation progresses. */\n rounds: z.array(_DeliberationRoundSchema).default([]),\n /**\n * Deterministic lens accounting for the winner, beside the synthesis it describes.\n * Absent exactly when `synthesis` is.\n */\n concurrence: _DeliberationConcurrenceSchema.optional(),\n /** The coordinator's synthesis (absent while RUNNING, on FAILED, and on REJECTED — a rejected field has no winner to synthesise). */\n synthesis: _DeliberationSynthesisSchema.optional(),\n /** Max rounds before the coordinator must synthesize (cost bound). */\n roundBudget: z.number().int().min(1),\n status: z.enum(DeliberationStatus),\n /**\n * The charters' `inputsDigest`s at deliberation time — lets an audit\n * see a decision was made under a stale persona (keyed by charterRef).\n */\n charterInputsDigests: z.record(z.string(), z.string()).default({}),\n /** The human authority's decision; null until the human acts. */\n humanDecision: _DeliberationHumanDecisionSchema.nullable().default(null),\n /** ISO-8601 timestamps. */\n startedAt: z.iso.datetime(),\n finishedAt: z.iso.datetime().optional(),\n});\nexport const DeliberationRecordSchema: typeof _DeliberationRecordSchema =\n _DeliberationRecordSchema;\nexport type DeliberationRecord = z.infer<typeof _DeliberationRecordSchema>;\n\n//===============================================================\n// LLM-facing pass contracts (deliberation orchestration)\n// ------------------------------------------------------------\n// The schemas HANDED TO THE MODEL by each orchestration pass. They are\n// the stamped-fields-free projections of the record contracts above:\n// identity/provenance fields (charter refs, candidate refs, timestamps,\n// work domain) are stamped DETERMINISTICALLY by the machinery — a model\n// never authors its own audit trail. Flat, all-required (strict\n// structured-output discipline; \"empty\" is []/'' by prompt contract).\n//===============================================================\n\n/**\n * Rubric-derivation pass output: the criteria only. The machinery stamps\n * `workDomain` / `derivedFromCharterRef` / `derivedAt` and validates the\n * assembled rubric through `EvaluationRubricSchema` (unique-ref refine).\n */\nconst _DeliberationRubricOutputSchema = z.object({\n criteria: z.array(_EvaluationCriterionSchema).min(1),\n});\nexport const DeliberationRubricOutputSchema: typeof _DeliberationRubricOutputSchema =\n _DeliberationRubricOutputSchema;\nexport type DeliberationRubricOutput = z.infer<typeof _DeliberationRubricOutputSchema>;\nconst _DeliberationRubricOutputStrictSchema = z.object({\n criteria: z.array(_EvaluationCriterionSchema.strict()).min(1),\n}).strict();\nexport const DeliberationRubricOutputStrictSchema: typeof _DeliberationRubricOutputStrictSchema =\n _DeliberationRubricOutputStrictSchema;\n\n/** One wire-level score entry inside {@link DeliberationReviewWireOutput}. */\nexport interface DeliberationReviewWireScore {\n /** 0–100 against the criterion's scale anchors. */\n score: number;\n /** One crisp sentence grounding the score in what was observed. */\n note: string;\n}\n\n/**\n * Review pass output as it crosses the LLM wire: `RubricVerdict` minus the\n * stamped identity fields, with `scores` as an OBJECT keyed by criterion ref.\n */\nexport interface DeliberationReviewWireOutput {\n scores: Record<string, DeliberationReviewWireScore>;\n recommendation: DeliberationRecommendation;\n critiques: RubricCritique[];\n overallNote: string;\n}\n\n/**\n * Build the PER-RUN review wire schema for one rubric: `scores` is a strict\n * object with EXACTLY the rubric's criterion refs as required keys.\n *\n * Why per-run instead of a static array-of-scores contract: the rubric is\n * per-run DATA (derived at deliberation start), and an array `scores` shape\n * leaves the \"one score per criterion\" invariant to the model's discipline —\n * live runs showed a ~25% first-attempt rejection rate from DUPLICATED\n * criterion entries (the model restating the criterion it cared most about;\n * 3/12 reviews on 2026-07-17, each burning a full vision-call retry). Keying\n * the object by the exact refs makes duplicates and omissions STRUCTURALLY\n * impossible at the decode layer instead of prompt-begged. The machinery\n * reshapes the record into the array-shaped `RubricVerdict` for storage and\n * still runs `validateVerdictCriterionRefs` as the belt-and-braces invariant.\n *\n * The schema is `.strict()` end-to-end (hallucinated refs fail decode) and\n * all-required (strict structured-output transports reject optionals).\n */\nexport function buildDeliberationReviewWireSchema(\n rubric: EvaluationRubric,\n): z.ZodType<DeliberationReviewWireOutput> {\n const scoreValue = z.object({\n score: z.number().min(0).max(100),\n note: z.string().min(1),\n }).strict();\n const scoresShape = Object.fromEntries(\n rubric.criteria.map((criterion) => [criterion.ref, scoreValue]),\n );\n return z.object({\n scores: z.object(scoresShape).strict(),\n recommendation: z.enum(DeliberationRecommendation),\n critiques: z.array(_RubricCritiqueSchema.strict()),\n overallNote: z.string().min(1),\n }).strict() as unknown as z.ZodType<DeliberationReviewWireOutput>;\n}\n\n/** The coordinator's per-round directive. */\nexport enum DeliberationRoundDirective {\n /** The outcome is settled — proceed to synthesis (converged). */\n FINALIZE = \"finalize\",\n /** Shortlist the strongest candidates and run a revision round. */\n REVISE_SHORTLIST = \"revise_shortlist\",\n}\n\n/**\n * Coordinator round pass output. On `FINALIZE`, `shortlistRefs` is an\n * explicit empty array (prompt contract). The machinery validates\n * `shortlistRefs` ⊆ the round's candidate refs and caps it at the plan's\n * shortlist size — an invalid echo falls back to the top-K by\n * deterministic aggregate.\n */\nconst _DeliberationCoordinatorRoundOutputSchema = z.object({\n directive: z.enum(DeliberationRoundDirective),\n /** The candidates to revise next round (empty on FINALIZE). */\n shortlistRefs: z.array(z.string().min(1)),\n /** Why this directive, grounded in the verdicts. */\n rationale: z.string().min(1),\n});\nexport const DeliberationCoordinatorRoundOutputSchema: typeof _DeliberationCoordinatorRoundOutputSchema =\n _DeliberationCoordinatorRoundOutputSchema;\nexport type DeliberationCoordinatorRoundOutput = z.infer<typeof _DeliberationCoordinatorRoundOutputSchema>;\nconst _DeliberationCoordinatorRoundOutputStrictSchema =\n _DeliberationCoordinatorRoundOutputSchema.strict();\nexport const DeliberationCoordinatorRoundOutputStrictSchema: typeof _DeliberationCoordinatorRoundOutputStrictSchema =\n _DeliberationCoordinatorRoundOutputStrictSchema;\n\n// The synthesis pass hands `DeliberationSynthesisSchema` itself to the model\n// (it is already flat + all-required); the machinery validates `winnerRef`\n// against the final candidate set (fallback: top deterministic aggregate)\n// and filters dissent entries to known reviewer charter refs.\nconst _DeliberationSynthesisStrictSchema = z.object({\n winnerRef: z.string().min(1),\n rationale: z.string().min(1),\n dissent: z.array(_DeliberationDissentSchema.strict()),\n}).strict();\nexport const DeliberationSynthesisStrictSchema: typeof _DeliberationSynthesisStrictSchema =\n _DeliberationSynthesisStrictSchema;\n\n//===============================================================\n// Deliberation plan (engine-machinery input — TS types, not Zod:\n// the plan carries a live PRODUCER CALLBACK)\n//===============================================================\n\n/**\n * A candidate's payload as the machinery consumes it (kind-discriminated).\n *\n * STRUCTURED exists because some subjects a panel must judge are DATA, not prose\n * or pixels — a placement plan, a schema proposal, a configuration. Serializing\n * such a candidate to text and parsing the winner back was the alternative, and\n * it was rejected: it makes the artifact's shape a prompt-formatting concern and\n * gives the round-trip somewhere to lose a field.\n */\nexport type DeliberationCandidateContent =\n | { kind: FlowsActors_IO_PartKind.TEXT; text: string }\n | { kind: FlowsActors_IO_PartKind.IMAGE; imageDataUri: string }\n | {\n kind: FlowsActors_IO_PartKind.STRUCTURED;\n /** The candidate value itself. This is what wins, and it is what reviewers are shown. */\n value: unknown;\n /**\n * OPTIONAL human-readable framing rendered ABOVE the value — never instead of it.\n *\n * The caller owns domain knowledge the engine does not (what a `groupRef`\n * means, why an order matters), so it may help a reviewer read the data. It\n * may NOT replace the data: a projection can drift from the value it\n * describes, and then the panel scores the prose while the winner is the\n * bytes — real evidence about the wrong target, with a green run concealing\n * it because the conclusion still looks plausible. The engine therefore\n * always renders `value`, and pins that a contradicting projection loses.\n */\n projection?: string;\n };\n\n/** One candidate handed to (or produced for) the machinery. */\nexport interface DeliberationCandidateInput {\n /** Stable candidate ref (unique within the deliberation). */\n ref: string;\n /** Locator the record stores (the caller owns the bytes). */\n storageRef: string;\n content: DeliberationCandidateContent;\n}\n\n/**\n * The CALLER-owned revision producer (RF-2: the engine never persists; the\n * companion owns candidate bytes). The machinery compiles the deterministic\n * `revisionPrompt` from the shortlisted candidate's critiques (RF-4:\n * TEXT revises the draft, IMAGE regenerates — both reduce to \"produce a new\n * candidate from parent + instruction\" at this seam) and the producer\n * returns the NEW candidate (fresh ref + persisted payload).\n */\nexport interface DeliberationProducer {\n produceRevision(\n parent: DeliberationCandidateInput,\n revisionPrompt: string,\n ): Promise<DeliberationCandidateInput>;\n}\n\n/** One expert seat at the table: the runtime profile + the agent built from its charter. */\nexport interface DeliberationExpertBinding {\n profile: RuntimeExpertProfile;\n agentRef: string;\n}\n\n/**\n * The full input of `executeDeliberation` — composed by the COMPANION\n * (which owns charters, agents, candidate bytes, and persistence); the\n * engine machinery owns only the orchestration semantics.\n */\nexport interface DeliberationPlan {\n deliberationRef: string;\n workDomain: ExpertWorkDomain;\n /** TEXT | IMAGE — anything else is fail-closed at execution. */\n subjectKind: FlowsActors_IO_PartKind;\n /** The assembled work-product brief every pass is grounded on. */\n briefContext: string;\n /** The reviewing panel (min 1). Narrowness is enforced by the COMPOSER. */\n reviewers: DeliberationExpertBinding[];\n /** The coordinator (shortlist + convergence + synthesis). */\n coordinator: DeliberationExpertBinding;\n /** The expert who derives the rubric (usually the domain owner). */\n rubricDeriver: DeliberationExpertBinding;\n /** Recorded as `participants.producerAgentRef` (audit). */\n producerAgentRef: string;\n producer: DeliberationProducer;\n initialCandidates: DeliberationCandidateInput[];\n /** Max rounds before forced synthesis (locked default 2, max 3). */\n roundBudget: number;\n /** Top-K candidates revised per round (RF-5 cost funnel). */\n shortlistSize: number;\n /** Participating charters' inputsDigests (staleness audit stamps). */\n charterInputsDigests: Record<string, string>;\n}\n\n//===============================================================\n// Deterministic helpers (never model arithmetic)\n//===============================================================\n\n/**\n * Result of the fail-closed criterion-ref validation of one verdict\n * against the rubric it claims to score.\n */\nexport interface VerdictCriterionRefsValidation {\n /** `true` iff the rubric is well-formed AND the verdict scores EXACTLY its criteria (no more, no less, no dupes). */\n ok: boolean;\n /** Refs in the verdict that do not exist in the rubric (hallucinated). Deduplicated. */\n unknownRefs: string[];\n /** Rubric criteria the verdict did not score. */\n missingRefs: string[];\n /** Refs scored more than once in the verdict. */\n duplicateRefs: string[];\n /**\n * Refs appearing more than once in the RUBRIC itself. The schema's\n * uniqueness refine rejects these at parse time; this re-check is the\n * fail-closed defense for in-process-constructed rubrics that skipped\n * parsing — a duplicated rubric ref would silently DOUBLE-WEIGHT that\n * criterion in the aggregate.\n */\n duplicateRubricRefs: string[];\n}\n\n/**\n * Fail-closed validation that a verdict's scores line up 1:1 with a\n * well-formed rubric's criteria. A verdict with hallucinated, missing, or\n * duplicated refs must be rejected (the machinery retries once with the\n * error surfaced, then drops the reviewer from the round with a quorum\n * note); a malformed rubric (duplicate refs) fails regardless of the\n * verdict.\n */\nexport function validateVerdictCriterionRefs(\n rubric: EvaluationRubric,\n verdict: RubricVerdict,\n): VerdictCriterionRefsValidation {\n const rubricRefs = new Set<string>();\n const duplicateRubricRefs: string[] = [];\n for (const criterion of rubric.criteria) {\n if (rubricRefs.has(criterion.ref) && !duplicateRubricRefs.includes(criterion.ref)) {\n duplicateRubricRefs.push(criterion.ref);\n }\n rubricRefs.add(criterion.ref);\n }\n\n const seen = new Set<string>();\n const unknownRefs: string[] = [];\n const duplicateRefs: string[] = [];\n for (const score of verdict.scores) {\n if (!rubricRefs.has(score.criterionRef) && !unknownRefs.includes(score.criterionRef)) {\n unknownRefs.push(score.criterionRef);\n }\n if (seen.has(score.criterionRef) && !duplicateRefs.includes(score.criterionRef)) {\n duplicateRefs.push(score.criterionRef);\n }\n seen.add(score.criterionRef);\n }\n\n const missingRefs = [...rubricRefs].filter((ref) => !seen.has(ref));\n return {\n ok:\n unknownRefs.length === 0\n && missingRefs.length === 0\n && duplicateRefs.length === 0\n && duplicateRubricRefs.length === 0,\n unknownRefs,\n missingRefs,\n duplicateRefs,\n duplicateRubricRefs,\n };\n}\n\n/**\n * Deterministic weighted aggregate of one verdict against the rubric:\n * `sum(weight_i × score_i) / sum(weight_i)` over the rubric's criteria,\n * on the verdict's 0–100 scale. Model-computed totals are never trusted —\n * this is the ONLY sanctioned aggregation.\n *\n * Throws if the verdict does not validate against the rubric\n * (`validateVerdictCriterionRefs`) — aggregating a malformed verdict\n * would silently misweight; callers must validate (and retry/drop) first.\n */\nexport function aggregateWeightedScore(\n rubric: EvaluationRubric,\n verdict: RubricVerdict,\n): number {\n const validation = validateVerdictCriterionRefs(rubric, verdict);\n if (!validation.ok) {\n throw new Error(\n `Cannot aggregate a verdict that does not match its rubric ` +\n `(unknown: [${validation.unknownRefs.join(\", \")}], ` +\n `missing: [${validation.missingRefs.join(\", \")}], ` +\n `duplicate: [${validation.duplicateRefs.join(\", \")}], ` +\n `duplicate rubric refs: [${validation.duplicateRubricRefs.join(\", \")}]).`,\n );\n }\n\n const scoreByRef = new Map(verdict.scores.map((score) => [score.criterionRef, score.score]));\n let weightedSum = 0;\n let weightSum = 0;\n for (const criterion of rubric.criteria) {\n // Ref alignment is guaranteed by the validation above.\n weightedSum += criterion.weight * (scoreByRef.get(criterion.ref) as number);\n weightSum += criterion.weight;\n }\n return weightedSum / weightSum;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"deliberation.shared.schemas.js","sourceRoot":"","sources":["../../../../src/flows-actors/deliberation.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nimport { FlowsActors_IO_PartKind } from \"./flows-actors.io.shared.schemas\";\n\n//===============================================================\n// Expert-Persona Deliberation — shared contracts\n// ------------------------------------------------------------\n// The GENERIC vocabulary of the agentic deliberation system: narrow\n// expert personas (derived per-app from the specification tier) review\n// candidate work products against a DERIVED evaluation rubric across\n// bounded critique-revise rounds, a coordinator synthesizes, a human\n// decides.\n//\n// TIER SPLIT (dependency direction — do not blur):\n// - The DERIVED artifacts (`ExpertRoleTemplate`, `ExpertPersonaCharter`)\n// live in `@wildo-ai/saas-specifications` `_core/expert-personas/`\n// (spec tier — committed, human-reviewable). `saas-backend-lib` can\n// NEVER import them (specifications sits BELOW backend-lib in the\n// graph).\n// - THIS file is the runtime-visible half: the enums the spec family\n// imports (single-sourced here — `ExpertWorkDomain`), the\n// `RuntimeExpertProfile` projection the COMPANION maps a charter into\n// before handing it to engine machinery, and the rubric / verdict /\n// deliberation-record contracts the engine round loop operates on.\n//\n// KEY DESIGN DECISION (the anti-\"taste-as-code\" contract): evaluation\n// CRITERIA ARE DATA, not schema fields. The rubric is derived per\n// deliberation run by an expert persona and travels in the judge PROMPT;\n// the verdict schema below stays FIXED and GENERIC (criterion-ref-keyed\n// score array), so one schema serves every work domain and every derived\n// rubric while remaining strict-structured-output compatible (flat,\n// all-required, no dynamic keys). Weighted aggregation is DETERMINISTIC\n// CODE (`aggregateWeightedScore`) — never model arithmetic — and\n// hallucinated criterion refs are rejected fail-closed\n// (`validateVerdictCriterionRefs`).\n//===============================================================\n\n/**\n * The narrow work-product domain an expert persona is specialized on —\n * the ROUTING AXIS of the narrowness principle. An expert declares a\n * small closed set of domains; the deliberation orchestrator REFUSES to\n * invoke an expert outside its declared domains (fail-closed).\n *\n * Deliberate design: agent personas are NARROW, unlike human employees\n * who wear several hats. A review needing three angles convenes three\n * experts + a coordinator, never one generalist.\n *\n * Single-sourced HERE (the spec-tier `expert-personas` family imports\n * this enum) so the vocabulary cannot drift across tiers. Extend\n * per-capability as new deliberation domains ship — never speculatively.\n */\nexport enum ExpertWorkDomain {\n /** Visual brand marks: logo symbols, icons, brand imagery. */\n VISUAL_BRAND_MARK = \"visual_brand_mark\",\n /** Marketing / product copy: website sections, email prose, taglines. */\n MARKETING_COPY = \"marketing_copy\",\n /** UI/design-system coherence: tokens, palette, typography discipline. */\n UI_DESIGN_COHERENCE = \"ui_design_coherence\",\n /** Brand strategy: positioning fit, differentiation, ICP resonance. */\n BRAND_STRATEGY = \"brand_strategy\",\n /**\n * Information architecture: WHERE a destination, operation or view belongs in\n * the application shell — surface assignment, grouping, ordering, findability.\n *\n * Distinct from {@link UI_DESIGN_COHERENCE}, which is tokens, palette and\n * typography discipline. A settings section can be perfectly on-palette and\n * still be in the wrong place; \"can a user find this, and does it sit with the\n * things it belongs with\" is a different question with a different expert.\n *\n * Added 2026-08-29, when placement became a deliberated decision rather than a\n * framework default — per this enum's rule, per-capability and never\n * speculatively.\n */\n INFORMATION_ARCHITECTURE = \"information_architecture\",\n}\n\n/**\n * A reviewer's headline recommendation for one candidate. Deliberately\n * the same three-state vocabulary as the interim brand accept judge —\n * accept as-is / fixable via revision / materially misses the brief.\n */\nexport enum DeliberationRecommendation {\n /** The candidate satisfies the rubric and can win as-is. */\n ACCEPT = \"accept\",\n /** Close, but has fixable concerns — revise before it can win. */\n REVISE = \"revise\",\n /** Materially misses the rubric — should not survive the shortlist. */\n REJECT = \"reject\",\n}\n\n/** How a candidate entered a round's candidate set. */\nexport enum DeliberationCandidateProvenance {\n /** Produced in round 1 from the creative brief. */\n ORIGINAL = \"original\",\n /** Produced by a critique-driven revision of a prior candidate. */\n REVISED = \"revised\",\n}\n\n/** Terminal + live states of a deliberation. */\nexport enum DeliberationStatus {\n /** Rounds are still executing. */\n RUNNING = \"running\",\n /** The coordinator judged the outcome converged before budget. */\n CONVERGED = \"converged\",\n /** The round budget was exhausted; synthesis used the last round. */\n BUDGET_EXHAUSTED = \"budget_exhausted\",\n /** The deliberation could not complete (provider/validation failure). */\n FAILED = \"failed\",\n /**\n * Every candidate was REJECTED by the panel. There is no winner, and that is a\n * RESULT — not a failure.\n *\n * Distinct from {@link FAILED}, which means the machinery could not complete;\n * here it completed and the answer is \"none of these\". Distinct from\n * {@link CONVERGED}, which asserts a winner. Collapsing rejection into either\n * would be the defect this state exists to remove: a coordinator asked to pick a\n * winner will pick one, so without a terminal rejection the least-bad candidate\n * of a uniformly rejected field lands carrying the panel's authority.\n *\n * A record in this state carries no `synthesis`. The caller decides what to do —\n * retry with a new brief, widen the candidate set, or surface the critiques —\n * because only the caller knows whether \"none of these\" is recoverable.\n */\n REJECTED = \"rejected\",\n}\n\n/**\n * The runtime projection of an `ExpertPersonaCharter` — everything the\n * engine deliberation machinery needs of a persona, WITHOUT importing the\n * spec tier (same pattern as the runtime brand-asset siblings). The\n * COMPANION (which imports both tiers) maps charter → profile when\n * composing a deliberation plan, and builds the expert's agent from it at\n * startup (fail-closed when the charter is missing/unaccepted).\n */\nconst _RuntimeExpertProfileSchema = z.object({\n /** The committed charter this profile projects (audit back-pointer). */\n charterRef: z.string().min(1),\n /** The framework role template the charter was derived from. */\n roleRef: z.string().min(1),\n /** The narrow domains this expert may produce briefs / reviews for. */\n workDomains: z.array(z.enum(ExpertWorkDomain)).min(1),\n /** The compiled app-specific persona prose (\"who I am for THIS app\"). */\n personaProse: z.string().min(1),\n /** Ordered priorities the persona judges by (highest first). */\n priorities: z.array(z.string().min(1)).min(1),\n /** Hard taboos — things this persona must never reward or produce. */\n taboos: z.array(z.string().min(1)).default([]),\n /**\n * What a top-tier candidate looks like for this app (rubric scale-anchor\n * seeds). Mirrors the charter's optional Lever-2 extension.\n */\n qualityBar: z.array(z.string().min(1)).optional(),\n /** The persona's ordered review checks (systematic judging method). */\n reviewProtocol: z.array(z.string().min(1)).optional(),\n});\nexport const RuntimeExpertProfileSchema: typeof _RuntimeExpertProfileSchema =\n _RuntimeExpertProfileSchema;\nexport type RuntimeExpertProfile = z.infer<typeof _RuntimeExpertProfileSchema>;\n\n/**\n * One derived evaluation criterion. `ref` is the join key verdicts score\n * against; `weight` feeds the DETERMINISTIC aggregation (never model\n * arithmetic); `scaleAnchors` pin what the scale ends MEAN so two\n * reviewers score commensurably.\n */\nconst _EvaluationCriterionSchema = z.object({\n /** Stable kebab-case key verdict scores reference (e.g. `favicon-legibility`). */\n ref: z.string().min(1),\n /** What is being evaluated, in one or two sentences. */\n description: z.string().min(1),\n /**\n * Relative importance, > 0 and FINITE. Normalization happens in\n * `aggregateWeightedScore` (weights need not sum to anything);\n * `.finite()` closes the Infinity/Infinity → NaN aggregate hole.\n */\n weight: z.number().positive().finite(),\n /** What the scale extremes mean — pins reviewer calibration. */\n scaleAnchors: z.object({\n /** What a 0 looks like for this criterion. */\n low: z.string().min(1),\n /** What a 100 looks like for this criterion. */\n high: z.string().min(1),\n }),\n});\nexport const EvaluationCriterionSchema: typeof _EvaluationCriterionSchema =\n _EvaluationCriterionSchema;\nexport type EvaluationCriterion = z.infer<typeof _EvaluationCriterionSchema>;\n\n/**\n * The DERIVED rubric a deliberation evaluates against. Derived ONCE at\n * deliberation start by the responsible expert persona (per-run — locked\n * decision), held CONSTANT across that deliberation's rounds (revise\n * targets must not move mid-discussion), and EMBEDDED in the\n * `DeliberationRecord` (auditability without a standalone artifact).\n * Never persisted as its own resource.\n */\nconst _EvaluationRubricSchema = z.object({\n /** The work domain this rubric evaluates. */\n workDomain: z.enum(ExpertWorkDomain),\n /** The charter of the expert who derived the rubric. */\n derivedFromCharterRef: z.string().min(1),\n /** The derived criteria (the DATA that replaces hardcoded score fields). */\n criteria: z.array(_EvaluationCriterionSchema).min(1),\n /** ISO-8601 derivation moment. */\n derivedAt: z.iso.datetime(),\n}).refine(\n (rubric) => new Set(rubric.criteria.map((criterion) => criterion.ref)).size === rubric.criteria.length,\n {\n // The rubric is LLM-DERIVED data — a model emitting the same ref twice\n // (with different weights) is a plausible output, and a duplicated ref\n // would silently DOUBLE-WEIGHT that criterion in the aggregate. Reject\n // at parse; `validateVerdictCriterionRefs` re-checks as defense for\n // in-process-constructed rubrics that skipped parsing.\n message: 'criteria[].ref must be unique — a duplicated ref would silently double-weight it in the aggregate.',\n path: ['criteria'],\n },\n);\nexport const EvaluationRubricSchema: typeof _EvaluationRubricSchema =\n _EvaluationRubricSchema;\nexport type EvaluationRubric = z.infer<typeof _EvaluationRubricSchema>;\n\n/**\n * One criterion score inside a verdict. `criterionRef` MUST match a\n * rubric criterion — enforced fail-closed by\n * `validateVerdictCriterionRefs` (a hallucinated ref rejects the verdict,\n * one retry with the error surfaced, then the reviewer is dropped from\n * the round with a quorum note).\n */\nconst _RubricScoreSchema = z.object({\n /** The rubric criterion this score answers. */\n criterionRef: z.string().min(1),\n /** 0–100 against the criterion's scale anchors. */\n score: z.number().min(0).max(100),\n /** One crisp sentence grounding the score in what was observed. */\n note: z.string().min(1),\n});\nexport const RubricScoreSchema: typeof _RubricScoreSchema = _RubricScoreSchema;\nexport type RubricScore = z.infer<typeof _RubricScoreSchema>;\n\n/**\n * One actionable critique inside a verdict — the REVISION FUEL. The\n * producer's revise step compiles the shortlist's critiques into the\n * revision (text: rewrite the draft; image: a regeneration prompt\n * addendum — the image transport has no edit operation).\n */\nconst _RubricCritiqueSchema = z.object({\n /** Which aspect of the candidate the critique targets. */\n targetAspect: z.string().min(1),\n /** What is wrong, grounded in the rubric/persona view. */\n critique: z.string().min(1),\n /** The concrete change that would address it. */\n suggestion: z.string().min(1),\n});\nexport const RubricCritiqueSchema: typeof _RubricCritiqueSchema =\n _RubricCritiqueSchema;\nexport type RubricCritique = z.infer<typeof _RubricCritiqueSchema>;\n\n/**\n * One reviewer's verdict on one candidate — the GENERIC,\n * strict-structured-output-safe judge contract (flat, all-required,\n * ref-keyed; \"nothing to report\" is an empty array, never an absent key).\n * This is the schema handed to the LLM; the rubric it scores against\n * travels in the PROMPT.\n */\nconst _RubricVerdictSchema = z.object({\n /** The reviewing expert's charter ref. */\n reviewerCharterRef: z.string().min(1),\n /** The candidate under review. */\n candidateRef: z.string().min(1),\n /** One score per rubric criterion (validated fail-closed, both ways). */\n scores: z.array(_RubricScoreSchema).min(1),\n /** Headline recommendation. */\n recommendation: z.enum(DeliberationRecommendation),\n /**\n * Actionable critiques (revision fuel). REQUIRED — \"no critiques\" is an\n * explicit empty array, never an absent key: this schema is handed to the\n * LLM, and the strict structured-output transport rejects any non-required\n * property (a `.default()` would emit one). The prompt contract mandates\n * `[]`, not the schema.\n */\n critiques: z.array(_RubricCritiqueSchema),\n /** The reviewer's overall reading of the candidate, one short paragraph. */\n overallNote: z.string().min(1),\n});\nexport const RubricVerdictSchema: typeof _RubricVerdictSchema =\n _RubricVerdictSchema;\nexport type RubricVerdict = z.infer<typeof _RubricVerdictSchema>;\n\n/**\n * One candidate as it exists inside a round's candidate set — a\n * DISCRIMINATED UNION on `provenance` so the audit invariant is enforced by\n * the schema, not by convention: a `REVISED` candidate MUST carry both\n * `revisedFromRef` and `revisionPrompt` (\"every revision is reproducible\n * from the record\"), while an `ORIGINAL` candidate carries neither.\n */\nconst _DeliberationCandidateOriginalSchema = z.object({\n /** Stable candidate ref (unique within the deliberation). */\n ref: z.string().min(1),\n /** Produced in round 1 from the creative brief. */\n provenance: z.literal(DeliberationCandidateProvenance.ORIGINAL),\n /**\n * Where the candidate's payload lives (staging-relative path or\n * artifact locator). The record stores locators, never payload bytes.\n */\n storageRef: z.string().min(1),\n});\nconst _DeliberationCandidateRevisedSchema = z.object({\n /** Stable candidate ref (unique within the deliberation). */\n ref: z.string().min(1),\n /** Produced by a critique-driven revision of a prior candidate. */\n provenance: z.literal(DeliberationCandidateProvenance.REVISED),\n /** The candidate this one revises. REQUIRED for revisions. */\n revisedFromRef: z.string().min(1),\n /**\n * The compiled revision instruction (text) or regeneration prompt\n * (image) — REQUIRED so every revision is reproducible from the record.\n */\n revisionPrompt: z.string().min(1),\n /** Where the candidate's payload lives (locator, never bytes). */\n storageRef: z.string().min(1),\n});\nconst _DeliberationCandidateSchema = z.discriminatedUnion('provenance', [\n _DeliberationCandidateOriginalSchema,\n _DeliberationCandidateRevisedSchema,\n]);\nexport const DeliberationCandidateSchema: typeof _DeliberationCandidateSchema =\n _DeliberationCandidateSchema;\nexport type DeliberationCandidate = z.infer<typeof _DeliberationCandidateSchema>;\n\n/**\n * One critique-revise round: the candidate set reviewed, every verdict\n * collected, and the coordinator's shortlist (the COST SPINE — round 1\n * reviews the full set, the coordinator shortlists top-K, rounds 2+\n * operate on the shortlist only; the panel never re-litigates eliminated\n * options).\n */\nconst _DeliberationRoundSchema = z.object({\n /** 1-based round number. */\n roundNumber: z.number().int().min(1),\n /** The candidates reviewed this round. */\n candidateSet: z.array(_DeliberationCandidateSchema).min(1),\n /** Every reviewer verdict collected this round (dissent preserved). */\n verdicts: z.array(_RubricVerdictSchema),\n /** The coordinator's shortlist feeding the next round (absent on the final round). */\n shortlistRefs: z.array(z.string().min(1)).optional(),\n});\nexport const DeliberationRoundSchema: typeof _DeliberationRoundSchema =\n _DeliberationRoundSchema;\nexport type DeliberationRound = z.infer<typeof _DeliberationRoundSchema>;\n\n/** A dissenting position preserved in the synthesis (never averaged away). */\nconst _DeliberationDissentSchema = z.object({\n /** The dissenting expert's charter ref. */\n charterRef: z.string().min(1),\n /** The dissenting position, in the expert's own terms. */\n position: z.string().min(1),\n});\nexport const DeliberationDissentSchema: typeof _DeliberationDissentSchema =\n _DeliberationDissentSchema;\nexport type DeliberationDissent = z.infer<typeof _DeliberationDissentSchema>;\n\n/**\n * The coordinator's synthesis — the \"manager's\" decision over the panel:\n * a winner, the grounded rationale, and every preserved dissent.\n * ADVISORY: the human decision seam on the record is the authority.\n */\nconst _DeliberationSynthesisSchema = z.object({\n /** The winning candidate ref. */\n winnerRef: z.string().min(1),\n /** Why the winner beats the field, grounded in verdicts + rubric. */\n rationale: z.string().min(1),\n /**\n * Dissenting positions, preserved verbatim. REQUIRED — unanimity is an\n * explicit empty array (the coordinator's synthesis is LLM-generated;\n * same strict structured-output discipline as the verdict's `critiques`).\n */\n dissent: z.array(_DeliberationDissentSchema),\n});\nexport const DeliberationSynthesisSchema: typeof _DeliberationSynthesisSchema =\n _DeliberationSynthesisSchema;\nexport type DeliberationSynthesis = z.infer<typeof _DeliberationSynthesisSchema>;\n\n/**\n * DETERMINISTIC lens accounting for the winner — computed by the machinery from the\n * final round's verdicts, never asked of a model.\n *\n * The floor and the coverage rules guarantee the winner was scored by every required\n * lens. What they cannot show is HOW those lenses split, and that is the difference\n * between consensus and a bare majority: \"two lenses accepted\" and \"one accepted, one\n * wanted revision\" produce an identical `synthesis`, because the coordinator writes\n * prose and prose can round a split into agreement.\n *\n * Kept OUT of {@link DeliberationSynthesis} on purpose. That object is model-generated;\n * a count that can be generated is a count that can be wrong, and the whole point here\n * is a number a reader can trust without re-reading every verdict.\n */\nconst _DeliberationConcurrenceSchema = z.object({\n /** The candidate these counts describe. */\n winnerRef: z.string().min(1),\n /** Distinct reviewer lenses that scored the winner. */\n lensCount: z.number().int().min(0),\n /** How those lenses split. Unanimity is `accept === lensCount`. */\n byRecommendation: z.object({\n accept: z.number().int().min(0),\n revise: z.number().int().min(0),\n reject: z.number().int().min(0),\n }),\n});\nexport const DeliberationConcurrenceSchema: typeof _DeliberationConcurrenceSchema =\n _DeliberationConcurrenceSchema;\nexport type DeliberationConcurrence = z.infer<typeof _DeliberationConcurrenceSchema>;\n\n/** Who sat at the table. */\nconst _DeliberationParticipantsSchema = z.object({\n /** The producing agent (image/text generator) — an agent ref, not a charter. */\n producerAgentRef: z.string().min(1),\n /** The reviewing experts' charter refs (the panel). */\n reviewerCharterRefs: z.array(z.string().min(1)).min(1),\n /** The coordinating expert's charter ref (synthesis + shortlist + convergence). */\n coordinatorCharterRef: z.string().min(1),\n});\nexport const DeliberationParticipantsSchema: typeof _DeliberationParticipantsSchema =\n _DeliberationParticipantsSchema;\nexport type DeliberationParticipants = z.infer<typeof _DeliberationParticipantsSchema>;\n\n/** The human decision over an advisory synthesis (the actual authority). */\nconst _DeliberationHumanDecisionSchema = z.object({\n /** What the human decided (accepted ref, override, or rejection note). */\n decision: z.string().min(1),\n /** ISO-8601 decision moment. */\n decidedAt: z.iso.datetime(),\n});\nexport const DeliberationHumanDecisionSchema: typeof _DeliberationHumanDecisionSchema =\n _DeliberationHumanDecisionSchema;\nexport type DeliberationHumanDecision = z.infer<typeof _DeliberationHumanDecisionSchema>;\n\n/**\n * The full minutes of one deliberation — rubric (embedded, constant),\n * participants, every round with every verdict, the synthesis, and the\n * human decision seam.\n *\n * PERSISTENCE: a deliberation is a BUILD-TIME companion artifact. The\n * engine machinery RETURNS this record and never persists it; the\n * companion writes it to its staging area\n * (`.wildo-saas/generated/deliberations/`). It is deliberately NOT hosted\n * on the flows-actors execution resources (`user`/`organization`/`applicationFlowActorExecutions`)\n * — those are scope-owned RUNTIME data (conversational history), the wrong tier\n * for build-time creative decisions.\n */\nconst _DeliberationRecordSchema = z.object({\n /** Unique deliberation id (companion-minted). */\n deliberationRef: z.string().min(1),\n /** The work domain deliberated. */\n workDomain: z.enum(ExpertWorkDomain),\n /**\n * The candidate payload modality. Drives the revision path: TEXT\n * revises the draft; IMAGE regenerates with a critique addendum (the\n * image transport has no edit operation). Other kinds are fail-closed\n * at execution until they have honest transports.\n */\n subjectKind: z.enum(FlowsActors_IO_PartKind),\n /** The derived rubric (embedded; constant across this record's rounds). */\n rubric: _EvaluationRubricSchema,\n participants: _DeliberationParticipantsSchema,\n /** The rounds, in order. Appended as the deliberation progresses. */\n rounds: z.array(_DeliberationRoundSchema).default([]),\n /**\n * Deterministic lens accounting for the winner, beside the synthesis it describes.\n * Absent exactly when `synthesis` is.\n */\n concurrence: _DeliberationConcurrenceSchema.optional(),\n /** The coordinator's synthesis (absent while RUNNING, on FAILED, and on REJECTED — a rejected field has no winner to synthesise). */\n synthesis: _DeliberationSynthesisSchema.optional(),\n /** Max rounds before the coordinator must synthesize (cost bound). */\n roundBudget: z.number().int().min(1),\n status: z.enum(DeliberationStatus),\n /** The human authority's decision; null until the human acts. */\n humanDecision: _DeliberationHumanDecisionSchema.nullable().default(null),\n /** ISO-8601 timestamps. */\n startedAt: z.iso.datetime(),\n finishedAt: z.iso.datetime().optional(),\n});\nexport const DeliberationRecordSchema: typeof _DeliberationRecordSchema =\n _DeliberationRecordSchema;\nexport type DeliberationRecord = z.infer<typeof _DeliberationRecordSchema>;\n\n//===============================================================\n// LLM-facing pass contracts (deliberation orchestration)\n// ------------------------------------------------------------\n// The schemas HANDED TO THE MODEL by each orchestration pass. They are\n// the stamped-fields-free projections of the record contracts above:\n// identity/provenance fields (charter refs, candidate refs, timestamps,\n// work domain) are stamped DETERMINISTICALLY by the machinery — a model\n// never authors its own audit trail. Flat, all-required (strict\n// structured-output discipline; \"empty\" is []/'' by prompt contract).\n//===============================================================\n\n/**\n * Rubric-derivation pass output: the criteria only. The machinery stamps\n * `workDomain` / `derivedFromCharterRef` / `derivedAt` and validates the\n * assembled rubric through `EvaluationRubricSchema` (unique-ref refine).\n */\nconst _DeliberationRubricOutputSchema = z.object({\n criteria: z.array(_EvaluationCriterionSchema).min(1),\n});\nexport const DeliberationRubricOutputSchema: typeof _DeliberationRubricOutputSchema =\n _DeliberationRubricOutputSchema;\nexport type DeliberationRubricOutput = z.infer<typeof _DeliberationRubricOutputSchema>;\nconst _DeliberationRubricOutputStrictSchema = z.object({\n criteria: z.array(_EvaluationCriterionSchema.strict()).min(1),\n}).strict();\nexport const DeliberationRubricOutputStrictSchema: typeof _DeliberationRubricOutputStrictSchema =\n _DeliberationRubricOutputStrictSchema;\n\n/** One wire-level score entry inside {@link DeliberationReviewWireOutput}. */\nexport interface DeliberationReviewWireScore {\n /** 0–100 against the criterion's scale anchors. */\n score: number;\n /** One crisp sentence grounding the score in what was observed. */\n note: string;\n}\n\n/**\n * Review pass output as it crosses the LLM wire: `RubricVerdict` minus the\n * stamped identity fields, with `scores` as an OBJECT keyed by criterion ref.\n */\nexport interface DeliberationReviewWireOutput {\n scores: Record<string, DeliberationReviewWireScore>;\n recommendation: DeliberationRecommendation;\n critiques: RubricCritique[];\n overallNote: string;\n}\n\n/**\n * Build the PER-RUN review wire schema for one rubric: `scores` is a strict\n * object with EXACTLY the rubric's criterion refs as required keys.\n *\n * Why per-run instead of a static array-of-scores contract: the rubric is\n * per-run DATA (derived at deliberation start), and an array `scores` shape\n * leaves the \"one score per criterion\" invariant to the model's discipline —\n * live runs showed a ~25% first-attempt rejection rate from DUPLICATED\n * criterion entries (the model restating the criterion it cared most about;\n * 3/12 reviews on 2026-07-17, each burning a full vision-call retry). Keying\n * the object by the exact refs makes duplicates and omissions STRUCTURALLY\n * impossible at the decode layer instead of prompt-begged. The machinery\n * reshapes the record into the array-shaped `RubricVerdict` for storage and\n * still runs `validateVerdictCriterionRefs` as the belt-and-braces invariant.\n *\n * The schema is `.strict()` end-to-end (hallucinated refs fail decode) and\n * all-required (strict structured-output transports reject optionals).\n */\nexport function buildDeliberationReviewWireSchema(\n rubric: EvaluationRubric,\n): z.ZodType<DeliberationReviewWireOutput> {\n const scoreValue = z.object({\n score: z.number().min(0).max(100),\n note: z.string().min(1),\n }).strict();\n const scoresShape = Object.fromEntries(\n rubric.criteria.map((criterion) => [criterion.ref, scoreValue]),\n );\n return z.object({\n scores: z.object(scoresShape).strict(),\n recommendation: z.enum(DeliberationRecommendation),\n critiques: z.array(_RubricCritiqueSchema.strict()),\n overallNote: z.string().min(1),\n }).strict() as unknown as z.ZodType<DeliberationReviewWireOutput>;\n}\n\n/** The coordinator's per-round directive. */\nexport enum DeliberationRoundDirective {\n /** The outcome is settled — proceed to synthesis (converged). */\n FINALIZE = \"finalize\",\n /** Shortlist the strongest candidates and run a revision round. */\n REVISE_SHORTLIST = \"revise_shortlist\",\n}\n\n/**\n * Coordinator round pass output. On `FINALIZE`, `shortlistRefs` is an\n * explicit empty array (prompt contract). The machinery validates\n * `shortlistRefs` ⊆ the round's candidate refs and caps it at the plan's\n * shortlist size — an invalid echo falls back to the top-K by\n * deterministic aggregate.\n */\nconst _DeliberationCoordinatorRoundOutputSchema = z.object({\n directive: z.enum(DeliberationRoundDirective),\n /** The candidates to revise next round (empty on FINALIZE). */\n shortlistRefs: z.array(z.string().min(1)),\n /** Why this directive, grounded in the verdicts. */\n rationale: z.string().min(1),\n});\nexport const DeliberationCoordinatorRoundOutputSchema: typeof _DeliberationCoordinatorRoundOutputSchema =\n _DeliberationCoordinatorRoundOutputSchema;\nexport type DeliberationCoordinatorRoundOutput = z.infer<typeof _DeliberationCoordinatorRoundOutputSchema>;\nconst _DeliberationCoordinatorRoundOutputStrictSchema =\n _DeliberationCoordinatorRoundOutputSchema.strict();\nexport const DeliberationCoordinatorRoundOutputStrictSchema: typeof _DeliberationCoordinatorRoundOutputStrictSchema =\n _DeliberationCoordinatorRoundOutputStrictSchema;\n\n// The synthesis pass hands `DeliberationSynthesisSchema` itself to the model\n// (it is already flat + all-required); the machinery validates `winnerRef`\n// against the final candidate set (fallback: top deterministic aggregate)\n// and filters dissent entries to known reviewer charter refs.\nconst _DeliberationSynthesisStrictSchema = z.object({\n winnerRef: z.string().min(1),\n rationale: z.string().min(1),\n dissent: z.array(_DeliberationDissentSchema.strict()),\n}).strict();\nexport const DeliberationSynthesisStrictSchema: typeof _DeliberationSynthesisStrictSchema =\n _DeliberationSynthesisStrictSchema;\n\n//===============================================================\n// Deliberation plan (engine-machinery input — TS types, not Zod:\n// the plan carries a live PRODUCER CALLBACK)\n//===============================================================\n\n/**\n * A candidate's payload as the machinery consumes it (kind-discriminated).\n *\n * STRUCTURED exists because some subjects a panel must judge are DATA, not prose\n * or pixels — a placement plan, a schema proposal, a configuration. Serializing\n * such a candidate to text and parsing the winner back was the alternative, and\n * it was rejected: it makes the artifact's shape a prompt-formatting concern and\n * gives the round-trip somewhere to lose a field.\n */\nexport type DeliberationCandidateContent =\n | { kind: FlowsActors_IO_PartKind.TEXT; text: string }\n | { kind: FlowsActors_IO_PartKind.IMAGE; imageDataUri: string }\n | {\n kind: FlowsActors_IO_PartKind.STRUCTURED;\n /** The candidate value itself. This is what wins, and it is what reviewers are shown. */\n value: unknown;\n /**\n * OPTIONAL human-readable framing rendered ABOVE the value — never instead of it.\n *\n * The caller owns domain knowledge the engine does not (what a `groupRef`\n * means, why an order matters), so it may help a reviewer read the data. It\n * may NOT replace the data: a projection can drift from the value it\n * describes, and then the panel scores the prose while the winner is the\n * bytes — real evidence about the wrong target, with a green run concealing\n * it because the conclusion still looks plausible. The engine therefore\n * always renders `value`, and pins that a contradicting projection loses.\n */\n projection?: string;\n };\n\n/** One candidate handed to (or produced for) the machinery. */\nexport interface DeliberationCandidateInput {\n /** Stable candidate ref (unique within the deliberation). */\n ref: string;\n /** Locator the record stores (the caller owns the bytes). */\n storageRef: string;\n content: DeliberationCandidateContent;\n}\n\n/**\n * The CALLER-owned revision producer (RF-2: the engine never persists; the\n * companion owns candidate bytes). The machinery compiles the deterministic\n * `revisionPrompt` from the shortlisted candidate's critiques (RF-4:\n * TEXT revises the draft, IMAGE regenerates — both reduce to \"produce a new\n * candidate from parent + instruction\" at this seam) and the producer\n * returns the NEW candidate (fresh ref + persisted payload).\n */\nexport interface DeliberationProducer {\n produceRevision(\n parent: DeliberationCandidateInput,\n revisionPrompt: string,\n ): Promise<DeliberationCandidateInput>;\n}\n\n/** One expert seat at the table: the runtime profile + the agent built from its charter. */\nexport interface DeliberationExpertBinding {\n profile: RuntimeExpertProfile;\n agentRef: string;\n}\n\n/**\n * The full input of `executeDeliberation` — composed by the COMPANION\n * (which owns charters, agents, candidate bytes, and persistence); the\n * engine machinery owns only the orchestration semantics.\n */\nexport interface DeliberationPlan {\n deliberationRef: string;\n workDomain: ExpertWorkDomain;\n /** TEXT | IMAGE — anything else is fail-closed at execution. */\n subjectKind: FlowsActors_IO_PartKind;\n /** The assembled work-product brief every pass is grounded on. */\n briefContext: string;\n /** The reviewing panel (min 1). Narrowness is enforced by the COMPOSER. */\n reviewers: DeliberationExpertBinding[];\n /** The coordinator (shortlist + convergence + synthesis). */\n coordinator: DeliberationExpertBinding;\n /** The expert who derives the rubric (usually the domain owner). */\n rubricDeriver: DeliberationExpertBinding;\n /** Recorded as `participants.producerAgentRef` (audit). */\n producerAgentRef: string;\n producer: DeliberationProducer;\n initialCandidates: DeliberationCandidateInput[];\n /** Max rounds before forced synthesis (locked default 2, max 3). */\n roundBudget: number;\n /** Top-K candidates revised per round (RF-5 cost funnel). */\n shortlistSize: number;\n}\n\n//===============================================================\n// Deterministic helpers (never model arithmetic)\n//===============================================================\n\n/**\n * Result of the fail-closed criterion-ref validation of one verdict\n * against the rubric it claims to score.\n */\nexport interface VerdictCriterionRefsValidation {\n /** `true` iff the rubric is well-formed AND the verdict scores EXACTLY its criteria (no more, no less, no dupes). */\n ok: boolean;\n /** Refs in the verdict that do not exist in the rubric (hallucinated). Deduplicated. */\n unknownRefs: string[];\n /** Rubric criteria the verdict did not score. */\n missingRefs: string[];\n /** Refs scored more than once in the verdict. */\n duplicateRefs: string[];\n /**\n * Refs appearing more than once in the RUBRIC itself. The schema's\n * uniqueness refine rejects these at parse time; this re-check is the\n * fail-closed defense for in-process-constructed rubrics that skipped\n * parsing — a duplicated rubric ref would silently DOUBLE-WEIGHT that\n * criterion in the aggregate.\n */\n duplicateRubricRefs: string[];\n}\n\n/**\n * Fail-closed validation that a verdict's scores line up 1:1 with a\n * well-formed rubric's criteria. A verdict with hallucinated, missing, or\n * duplicated refs must be rejected (the machinery retries once with the\n * error surfaced, then drops the reviewer from the round with a quorum\n * note); a malformed rubric (duplicate refs) fails regardless of the\n * verdict.\n */\nexport function validateVerdictCriterionRefs(\n rubric: EvaluationRubric,\n verdict: RubricVerdict,\n): VerdictCriterionRefsValidation {\n const rubricRefs = new Set<string>();\n const duplicateRubricRefs: string[] = [];\n for (const criterion of rubric.criteria) {\n if (rubricRefs.has(criterion.ref) && !duplicateRubricRefs.includes(criterion.ref)) {\n duplicateRubricRefs.push(criterion.ref);\n }\n rubricRefs.add(criterion.ref);\n }\n\n const seen = new Set<string>();\n const unknownRefs: string[] = [];\n const duplicateRefs: string[] = [];\n for (const score of verdict.scores) {\n if (!rubricRefs.has(score.criterionRef) && !unknownRefs.includes(score.criterionRef)) {\n unknownRefs.push(score.criterionRef);\n }\n if (seen.has(score.criterionRef) && !duplicateRefs.includes(score.criterionRef)) {\n duplicateRefs.push(score.criterionRef);\n }\n seen.add(score.criterionRef);\n }\n\n const missingRefs = [...rubricRefs].filter((ref) => !seen.has(ref));\n return {\n ok:\n unknownRefs.length === 0\n && missingRefs.length === 0\n && duplicateRefs.length === 0\n && duplicateRubricRefs.length === 0,\n unknownRefs,\n missingRefs,\n duplicateRefs,\n duplicateRubricRefs,\n };\n}\n\n/**\n * Deterministic weighted aggregate of one verdict against the rubric:\n * `sum(weight_i × score_i) / sum(weight_i)` over the rubric's criteria,\n * on the verdict's 0–100 scale. Model-computed totals are never trusted —\n * this is the ONLY sanctioned aggregation.\n *\n * Throws if the verdict does not validate against the rubric\n * (`validateVerdictCriterionRefs`) — aggregating a malformed verdict\n * would silently misweight; callers must validate (and retry/drop) first.\n */\nexport function aggregateWeightedScore(\n rubric: EvaluationRubric,\n verdict: RubricVerdict,\n): number {\n const validation = validateVerdictCriterionRefs(rubric, verdict);\n if (!validation.ok) {\n throw new Error(\n `Cannot aggregate a verdict that does not match its rubric ` +\n `(unknown: [${validation.unknownRefs.join(\", \")}], ` +\n `missing: [${validation.missingRefs.join(\", \")}], ` +\n `duplicate: [${validation.duplicateRefs.join(\", \")}], ` +\n `duplicate rubric refs: [${validation.duplicateRubricRefs.join(\", \")}]).`,\n );\n }\n\n const scoreByRef = new Map(verdict.scores.map((score) => [score.criterionRef, score.score]));\n let weightedSum = 0;\n let weightSum = 0;\n for (const criterion of rubric.criteria) {\n // Ref alignment is guaranteed by the validation above.\n weightedSum += criterion.weight * (scoreByRef.get(criterion.ref) as number);\n weightSum += criterion.weight;\n }\n return weightedSum / weightSum;\n}\n"]}
|
|
@@ -44,5 +44,5 @@ import { CoreResourceOperation } from '../resources/resources.shared.core.defini
|
|
|
44
44
|
* - organizationFlowActorExecutions
|
|
45
45
|
* - applicationFlowActorExecutions
|
|
46
46
|
*/
|
|
47
|
-
export declare const flowActorExecutionsPolymorphicFactories: Record<string, import("..").ResourceConfiguration_InitializationFactory<undefined, CoreResourceOperation.READ | CoreResourceOperation.UPDATE | CoreResourceOperation.DELETE | CoreResourceOperation.CREATE | CoreResourceOperation.LIST, any>>;
|
|
47
|
+
export declare const flowActorExecutionsPolymorphicFactories: Record<string, import("..").ResourceConfiguration_InitializationFactory<undefined, CoreResourceOperation.READ | CoreResourceOperation.UPDATE | CoreResourceOperation.UPDATE_MANY | CoreResourceOperation.DELETE | CoreResourceOperation.CREATE | CoreResourceOperation.LIST, any>>;
|
|
48
48
|
//# sourceMappingURL=flows-actors-execution.shared.resources-config.schemas.d.ts.map
|
package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows-actors-execution.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/flows-actors/flows-actors-execution.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"flows-actors-execution.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/flows-actors/flows-actors-execution.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gDAAgD,CAAC;AA6DzG;;;;;;;;;GASG;AACH,eAAO,MAAM,uCAAuC,oRAiJnD,CAAC"}
|
|
@@ -39,6 +39,7 @@ import { ResourceSystemAccessMode } from '../resources/resources-config.shared.s
|
|
|
39
39
|
import { DataPortabilityProvenance } from '../compliance/privacy/subject-export.shared.schemas.js';
|
|
40
40
|
import { createPolymorphicResourceConfigurations } from '../resources/utils/resource-polymorphism.factory.js';
|
|
41
41
|
import { CORE_APP_ROLES, CORE_ORG_ROLES } from '../security/authorizations/roles.shared.schemas.js';
|
|
42
|
+
import { ErasureRetentionMode, ResourceDataSubjectKind } from '../compliance/privacy/impersonalization.shared.schemas.js';
|
|
42
43
|
import { flowActorExecutionsPolymorphicDeclaration, FlowActorExecutionUpdateInternalSchema, } from './flows-actors-execution.shared.schemas.js';
|
|
43
44
|
/**
|
|
44
45
|
* Per-variant owner-read role map. A user reads its own executions (APP_USER, the
|
|
@@ -108,14 +109,56 @@ export const flowActorExecutionsPolymorphicFactories = createPolymorphicResource
|
|
|
108
109
|
update: ResourceSystemAccessMode.ALLOWED,
|
|
109
110
|
},
|
|
110
111
|
portabilityPolicy: { defaultProvenance: DataPortabilityProvenance.OBSERVED },
|
|
112
|
+
/**
|
|
113
|
+
* Subject erasure RETAINS this row and RESETS the conversation.
|
|
114
|
+
*
|
|
115
|
+
* `messages` is the conversation itself — the person's own words and the model's replies to them — so
|
|
116
|
+
* `RETAIN_ONLY` would be false and the factory refuses it. It is a defaulted array, so REMOVE (needs
|
|
117
|
+
* clearable) and MASK (needs a string) both refuse; `RedactionType.RESET` returns it to the empty default.
|
|
118
|
+
*
|
|
119
|
+
* Note the contrast with the sibling `flowActorTasks`, whose content fields are optional strings and take
|
|
120
|
+
* REMOVE. Same subsystem, same kind of content, different container — which is why RESET had to exist for
|
|
121
|
+
* this one to declare any posture at all.
|
|
122
|
+
*/
|
|
123
|
+
retentionPolicy: {
|
|
124
|
+
mode: ErasureRetentionMode.RETAIN_AND_IMPERSONALIZE,
|
|
125
|
+
},
|
|
126
|
+
/**
|
|
127
|
+
* Erasing one of these rows revokes NO session. The row is work performed for a person, not the person; its
|
|
128
|
+
* owner FK names the scope the work ran in.
|
|
129
|
+
*/
|
|
130
|
+
dataSubjectPolicy: { kind: ResourceDataSubjectKind.NO_PRINCIPAL },
|
|
111
131
|
coreOperations: [
|
|
112
132
|
CoreResourceOperation.CREATE,
|
|
113
133
|
CoreResourceOperation.READ,
|
|
114
134
|
CoreResourceOperation.UPDATE,
|
|
115
135
|
CoreResourceOperation.LIST,
|
|
116
136
|
CoreResourceOperation.DELETE,
|
|
137
|
+
// Route-less; `retentionPolicy` requires READ + LIST + UPDATE_MANY.
|
|
138
|
+
CoreResourceOperation.UPDATE_MANY,
|
|
117
139
|
],
|
|
118
140
|
operationsConfiguration: {
|
|
141
|
+
/*
|
|
142
|
+
|
|
143
|
+
* Route-less retention plumbing — INTERNAL_CALL registers no route, so no API surface is added, and it
|
|
144
|
+
|
|
145
|
+
* must not be REPOSITORY_ONLY: the retention primitives resolve through `getServiceOperationPathDefault`,
|
|
146
|
+
|
|
147
|
+
* which matches only INTERNAL_CALL / API_CALL. LIST is LOW (a read-shaped op may not claim the
|
|
148
|
+
|
|
149
|
+
* HIGH/CRITICAL band, which carries an audit-emission obligation); UPDATE_MANY is CRITICAL — it is the
|
|
150
|
+
|
|
151
|
+
* verb the impersonalize writer uses to stamp the retention markers.
|
|
152
|
+
|
|
153
|
+
*/
|
|
154
|
+
[CoreResourceOperation.UPDATE_MANY]: {
|
|
155
|
+
variants: [{
|
|
156
|
+
variantType: ResourceOperationVariantType.INTERNAL_CALL,
|
|
157
|
+
isDefault: true,
|
|
158
|
+
roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],
|
|
159
|
+
riskLevel: ResourceOperationRiskLevel.CRITICAL,
|
|
160
|
+
}],
|
|
161
|
+
},
|
|
119
162
|
// === READ === owner reads their own execution (chat history)
|
|
120
163
|
[CoreResourceOperation.READ]: {
|
|
121
164
|
variants: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows-actors-execution.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/flows-actors/flows-actors-execution.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACzG,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,EAAE,uCAAuC,EAAE,MAAM,kDAAkD,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjG,OAAO,EACL,yCAAyC,EACzC,sCAAsC,GACvC,MAAM,yCAAyC,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG;IACvB,+FAA+F;IAC/F,iDAAiD;IACjD,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;IACnD,qFAAqF;IACrF,EAAE;IACF,iGAAiG;IACjG,6FAA6F;IAC7F,kGAAkG;IAClG,gGAAgG;IAChG,+FAA+F;IAC/F,kGAAkG;IAClG,+FAA+F;IAC/F,sFAAsF;IACtF,EAAE;IACF,iGAAiG;IACjG,6FAA6F;IAC7F,+FAA+F;IAC/F,iEAAiE;IACjE,EAAE;IACF,uFAAuF;IACvF,6EAA6E;IAC7E,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC;IAC5D,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;CACvE,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG;IACzB,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;IACnD,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC;IAC5D,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;CACvE,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,uCAAuC,CAC5F,yCAAyC,EACzC;IACE,gBAAgB,EAAE,IAAI;IAEtB,gFAAgF;IAChF,8EAA8E;IAC9E,sDAAsD;IACtD,kBAAkB,EAAE;QAClB,oSAAoS;QACpS,aAAa,EAAE,wBAAwB,CAAC,OAAO;QAC/C,MAAM,EAAE,wBAAwB,CAAC,OAAO;QACxC,IAAI,EAAE,wBAAwB,CAAC,OAAO;QACtC,IAAI,EAAE,wBAAwB,CAAC,OAAO;QACtC,MAAM,EAAE,wBAAwB,CAAC,OAAO;KACzC;IACD,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,yBAAyB,CAAC,QAAQ,EAAE;IAE5E,cAAc,EAAE;QACd,qBAAqB,CAAC,MAAM;QAC5B,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,MAAM;QAC5B,qBAAqB,CAAC,IAAI;QAC1B,qBAAqB,CAAC,MAAM;KAC7B;IAED,uBAAuB,EAAE;QACvB,8DAA8D;QAC9D,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE,CAAC;oBACT,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,eAAe,EAAE,gBAAgB;oBACjC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C,CAAC;SACH;QAED,gEAAgE;QAChE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,EAAE,CAAC;oBACT,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,eAAe,EAAE,gBAAgB;oBACjC,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C,CAAC;SACH;QAED,yEAAyE;QACzE,6EAA6E;QAC7E,+EAA+E;QAC/E,iDAAiD;QACjD,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE,CAAC;oBACT,WAAW,EAAE,4BAA4B,CAAC,aAAa;oBACvD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;oBAC7C,SAAS,EAAE,0BAA0B,CAAC,GAAG;iBAC1C,CAAC;SACH;QAED,oEAAoE;QACpE,kDAAkD;QAClD,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE,CAAC;oBACT,WAAW,EAAE,4BAA4B,CAAC,aAAa;oBACvD,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC;oBAC7C,SAAS,EAAE,0BAA0B,CAAC,GAAG;oBACzC,UAAU,EAAE,sCAAsC;iBACnD,CAAC;SACH;QAED,+EAA+E;QAC/E,6EAA6E;QAC7E,gFAAgF;QAChF,2EAA2E;QAC3E,oFAAoF;QACpF,kFAAkF;QAClF,8EAA8E;QAC9E,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,EAAE;gBACR;oBACE,WAAW,EAAE,4BAA4B,CAAC,QAAQ;oBAClD,SAAS,EAAE,IAAI;oBACf,eAAe,EAAE,kBAAkB;oBACnC,SAAS,EAAE,0BAA0B,CAAC,IAAI;iBAC3C;aACF;SACF;KACF;CACF,CACF,CAAC","sourcesContent":["/**\n * Flows-Actors Execution — Resource Configuration (POLYMORPHIC)\n * =============================================================\n *\n * Persisted flow/actor system executions (chat history + kind-discriminated\n * runtime state), stamped out as THREE owner-scope variants from one polymorphic\n * declaration (`userFlowActorExecutions` / `organizationFlowActorExecutions` /\n * `applicationFlowActorExecutions`). Spread the produced factories into the\n * registry factory map:\n * ...flowActorExecutionsPolymorphicFactories\n *\n * Scope + access model:\n * - Owner = the injected scope FK per variant (USER_SELF / ORGANIZATIONS /\n * APPLICATION primary scope). Default READ/LIST are `API_CALL`; their roles are\n * resolved PER VARIANT by `polymorphicRole` — a user reads its own (APP_USER +\n * USER_SELF filter), a machine reads its org/app variant with its granted org/app\n * role (ORG_MEMBER / APP_USER). Standard RBAC, no new role, no authorizer change.\n * - CREATE/UPDATE are `INTERNAL_CALL` super-admin: only the flows-actors\n * conversational runtime (a system actor) persists executions + appends messages,\n * via `*AsSystem` (governed by `systemAccessPolicy`, not the op RBAC). CREATE has\n * no explicit request DTO — it auto-derives per variant so the injected owner FK\n * (`userId` / `organizationId` / `applicationId`) is required on the correct variant.\n * UPDATE uses the shared owner-agnostic `FlowActorExecutionUpdateInternalSchema`.\n * INTERNAL_CALL (not REPOSITORY_ONLY) is mandatory: `*AsSystem` dispatches through\n * the service tier and resolves the op via `getServiceOperationPathDefault`, which\n * only matches INTERNAL_CALL / API_CALL variants.\n * - DELETE is a single owner-facing `API_CALL` (default) whose role floor is DISTINCT\n * from read (a user deletes only their own chat; org/app conversations require org/app\n * admin — `OWNER_DELETE_ROLES`). The same default op ALSO powers the composition\n * `onParentDelete` cascade at the repository tier (which selects the\n * `isOperationDefault === true` DELETE) — no `REPOSITORY_ONLY` variant needed.\n *\n * @see flows-actors-execution.shared.schemas.ts — the polymorphic declaration + base schema\n * @see billing-account.shared.resources-config.schemas.ts — the polymorphic config precedent\n */\n\nimport { CoreResourceOperation, CoreResourceType } from '../resources/resources.shared.core.definitions';\nimport {\n ResourceOperationRiskLevel,\n ResourceOperationVariantType,\n} from '../resources/resources.shared.schemas';\nimport { ResourceSystemAccessMode } from '../resources/resources-config.shared.schemas';\nimport { DataPortabilityProvenance } from '../compliance/privacy/subject-export.shared.schemas';\nimport { createPolymorphicResourceConfigurations } from '../resources/utils/resource-polymorphism.factory';\nimport { CORE_APP_ROLES, CORE_ORG_ROLES } from '../security/authorizations/roles.shared.schemas';\nimport {\n flowActorExecutionsPolymorphicDeclaration,\n FlowActorExecutionUpdateInternalSchema,\n} from './flows-actors-execution.shared.schemas';\n\n/**\n * Per-variant owner-read role map. A user reads its own executions (APP_USER, the\n * USER_SELF filter restricts to the caller's rows); a machine reads its org/app\n * variant with the role its API-key / OIDC-client was granted (ORG_MEMBER for an\n * org machine, APP_USER for an app machine). The scope authorizer +\n * contextual filter isolate rows to the owner; the role is the operation floor.\n */\nconst OWNER_READ_ROLES = {\n // USER variant: the scope FK IS the principal, so `APP_USER` plus the contextual filter yields\n // exactly \"my own rows\". Correct, and unchanged.\n [CoreResourceType.USERS]: [CORE_APP_ROLES.APP_USER],\n // ── MACHINE variants: ADMIN-only, and this is a CORRECTION (review finding F5-1) ──\n //\n // These previously granted `ORG_MEMBER` / `APP_USER`, inherited from the USER variant where that\n // is right. On the machine variants it is not: the scope FK does not identify the principal.\n // `applicationId` is a DEPLOYMENT SINGLETON, so every application-scope principal resolves to the\n // same contextual filter, and `organizationId` is shared by every machine client of one tenant.\n // The generic REST plane therefore let a PEER principal read another client's rows — the whole\n // `messages[]` log on an execution, and `title` (the opening 120 chars of the originating prompt)\n // on a task. That is exactly the cross-client disclosure the credential axis closed on the A2A\n // plane; the axis was applied there and not here, and both planes read the same rows.\n //\n // The resolution follows the reasoning the DELETE map below ALREADY documents: an org/app record\n // is SHARED SCOPE DATA, not owner data. Whoever administers the scope may inspect it; a peer\n // principal inside that scope may not. Roles are the framework's single authorization axis, so\n // this is expressed there rather than by inventing a second one.\n //\n // The A2A path is unaffected — it reads through `readAsSystem` and isolates by its own\n // owner + agent + credential filter, which is stricter than either role set.\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n};\n\n/**\n * Per-variant DELETE role map. Delete authority is DELIBERATELY DISTINCT from read\n * (destroying a conversation ≠ reading it): a user deletes only their OWN chat\n * (APP_USER, USER_SELF-gated), but an org/app conversation is SHARED scope data, so\n * removing it requires ORG_ADMIN / APP_ADMIN_SUPER_ADMIN — not any org member / app\n * user who can merely read it. (Read-authority ⊉ delete-authority.)\n */\nconst OWNER_DELETE_ROLES = {\n [CoreResourceType.USERS]: [CORE_APP_ROLES.APP_USER],\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n};\n\n/**\n * Polymorphic factory map for flows-actors executions. Spread into\n * `coreShared_ResourcesConfigurations_FactoryMap`:\n * ...flowActorExecutionsPolymorphicFactories\n *\n * Produces entries for:\n * - userFlowActorExecutions\n * - organizationFlowActorExecutions\n * - applicationFlowActorExecutions\n */\nexport const flowActorExecutionsPolymorphicFactories = createPolymorphicResourceConfigurations(\n flowActorExecutionsPolymorphicDeclaration,\n {\n isSystemResource: true,\n\n // Opt the conversational runtime (system actor) into scoped writes/reads on the\n // owner's behalf. Absent this, every `*AsSystem` verb fails closed. Shared by\n // all variants per the polymorphic-resource contract.\n systemAccessPolicy: {\n // Subject-export disclosure. The subject's own flow executions. Secrets and backend-only values are withheld by the export's security floor regardless of this grant. On a polymorphic resource this grant applies to EVERY generated variant, which is the documented intent of the shared config.\n exportSubject: ResourceSystemAccessMode.ALLOWED,\n create: ResourceSystemAccessMode.ALLOWED,\n read: ResourceSystemAccessMode.ALLOWED,\n list: ResourceSystemAccessMode.ALLOWED,\n update: ResourceSystemAccessMode.ALLOWED,\n },\n portabilityPolicy: { defaultProvenance: DataPortabilityProvenance.OBSERVED },\n\n coreOperations: [\n CoreResourceOperation.CREATE,\n CoreResourceOperation.READ,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.LIST,\n CoreResourceOperation.DELETE,\n ],\n\n operationsConfiguration: {\n // === READ === owner reads their own execution (chat history)\n [CoreResourceOperation.READ]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: OWNER_READ_ROLES,\n riskLevel: ResourceOperationRiskLevel.LOW,\n }],\n },\n\n // === LIST === owner lists their own executions (history index)\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: OWNER_READ_ROLES,\n riskLevel: ResourceOperationRiskLevel.LOW,\n }],\n },\n\n // === CREATE === system runtime opens an execution (via createAsSystem).\n // No explicit request DTO: auto-derives per variant so the injected owner FK\n // is required on the correct variant. Super-admin INTERNAL_CALL — the write is\n // governed by systemAccessPolicy, not this role.\n [CoreResourceOperation.CREATE]: {\n variants: [{\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }],\n },\n\n // === UPDATE === system runtime appends messages / advances status.\n // Owner-agnostic shared DTO (owner is immutable).\n [CoreResourceOperation.UPDATE]: {\n variants: [{\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n requestDto: FlowActorExecutionUpdateInternalSchema,\n }],\n },\n\n // === DELETE === destructive removal of a conversation. Role floor is DISTINCT\n // from read (OWNER_DELETE_ROLES: a user deletes only their own chat; org/app\n // conversations require org/app admin). The single API_CALL default ALSO powers\n // the composition onParentDelete cascade — the repository tier selects the\n // `isOperationDefault === true` DELETE op (`repository-resource.backend.service.ts`\n // `delete()`), so NO separate REPOSITORY_ONLY variant is needed (billing cascades\n // identically with one default; a second variant would be inert scaffolding).\n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: OWNER_DELETE_ROLES,\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n },\n },\n);\n"]}
|
|
1
|
+
{"version":3,"file":"flows-actors-execution.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/flows-actors/flows-actors-execution.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Flows-Actors Execution — Resource Configuration (POLYMORPHIC)\n * =============================================================\n *\n * Persisted flow/actor system executions (chat history + kind-discriminated\n * runtime state), stamped out as THREE owner-scope variants from one polymorphic\n * declaration (`userFlowActorExecutions` / `organizationFlowActorExecutions` /\n * `applicationFlowActorExecutions`). Spread the produced factories into the\n * registry factory map:\n * ...flowActorExecutionsPolymorphicFactories\n *\n * Scope + access model:\n * - Owner = the injected scope FK per variant (USER_SELF / ORGANIZATIONS /\n * APPLICATION primary scope). Default READ/LIST are `API_CALL`; their roles are\n * resolved PER VARIANT by `polymorphicRole` — a user reads its own (APP_USER +\n * USER_SELF filter), a machine reads its org/app variant with its granted org/app\n * role (ORG_MEMBER / APP_USER). Standard RBAC, no new role, no authorizer change.\n * - CREATE/UPDATE are `INTERNAL_CALL` super-admin: only the flows-actors\n * conversational runtime (a system actor) persists executions + appends messages,\n * via `*AsSystem` (governed by `systemAccessPolicy`, not the op RBAC). CREATE has\n * no explicit request DTO — it auto-derives per variant so the injected owner FK\n * (`userId` / `organizationId` / `applicationId`) is required on the correct variant.\n * UPDATE uses the shared owner-agnostic `FlowActorExecutionUpdateInternalSchema`.\n * INTERNAL_CALL (not REPOSITORY_ONLY) is mandatory: `*AsSystem` dispatches through\n * the service tier and resolves the op via `getServiceOperationPathDefault`, which\n * only matches INTERNAL_CALL / API_CALL variants.\n * - DELETE is a single owner-facing `API_CALL` (default) whose role floor is DISTINCT\n * from read (a user deletes only their own chat; org/app conversations require org/app\n * admin — `OWNER_DELETE_ROLES`). The same default op ALSO powers the composition\n * `onParentDelete` cascade at the repository tier (which selects the\n * `isOperationDefault === true` DELETE) — no `REPOSITORY_ONLY` variant needed.\n *\n * @see flows-actors-execution.shared.schemas.ts — the polymorphic declaration + base schema\n * @see billing-account.shared.resources-config.schemas.ts — the polymorphic config precedent\n */\n\nimport { CoreResourceOperation, CoreResourceType } from '../resources/resources.shared.core.definitions';\nimport {\n ResourceOperationRiskLevel,\n ResourceOperationVariantType,\n} from '../resources/resources.shared.schemas';\nimport { ResourceSystemAccessMode } from '../resources/resources-config.shared.schemas';\nimport { DataPortabilityProvenance } from '../compliance/privacy/subject-export.shared.schemas';\nimport { createPolymorphicResourceConfigurations } from '../resources/utils/resource-polymorphism.factory';\nimport { CORE_APP_ROLES, CORE_ORG_ROLES } from '../security/authorizations/roles.shared.schemas';\nimport { ErasureRetentionMode, ResourceDataSubjectKind } from '../compliance/privacy/impersonalization.shared.schemas';\nimport {\n flowActorExecutionsPolymorphicDeclaration,\n FlowActorExecutionUpdateInternalSchema,\n} from './flows-actors-execution.shared.schemas';\n\n/**\n * Per-variant owner-read role map. A user reads its own executions (APP_USER, the\n * USER_SELF filter restricts to the caller's rows); a machine reads its org/app\n * variant with the role its API-key / OIDC-client was granted (ORG_MEMBER for an\n * org machine, APP_USER for an app machine). The scope authorizer +\n * contextual filter isolate rows to the owner; the role is the operation floor.\n */\nconst OWNER_READ_ROLES = {\n // USER variant: the scope FK IS the principal, so `APP_USER` plus the contextual filter yields\n // exactly \"my own rows\". Correct, and unchanged.\n [CoreResourceType.USERS]: [CORE_APP_ROLES.APP_USER],\n // ── MACHINE variants: ADMIN-only, and this is a CORRECTION (review finding F5-1) ──\n //\n // These previously granted `ORG_MEMBER` / `APP_USER`, inherited from the USER variant where that\n // is right. On the machine variants it is not: the scope FK does not identify the principal.\n // `applicationId` is a DEPLOYMENT SINGLETON, so every application-scope principal resolves to the\n // same contextual filter, and `organizationId` is shared by every machine client of one tenant.\n // The generic REST plane therefore let a PEER principal read another client's rows — the whole\n // `messages[]` log on an execution, and `title` (the opening 120 chars of the originating prompt)\n // on a task. That is exactly the cross-client disclosure the credential axis closed on the A2A\n // plane; the axis was applied there and not here, and both planes read the same rows.\n //\n // The resolution follows the reasoning the DELETE map below ALREADY documents: an org/app record\n // is SHARED SCOPE DATA, not owner data. Whoever administers the scope may inspect it; a peer\n // principal inside that scope may not. Roles are the framework's single authorization axis, so\n // this is expressed there rather than by inventing a second one.\n //\n // The A2A path is unaffected — it reads through `readAsSystem` and isolates by its own\n // owner + agent + credential filter, which is stricter than either role set.\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n};\n\n/**\n * Per-variant DELETE role map. Delete authority is DELIBERATELY DISTINCT from read\n * (destroying a conversation ≠ reading it): a user deletes only their OWN chat\n * (APP_USER, USER_SELF-gated), but an org/app conversation is SHARED scope data, so\n * removing it requires ORG_ADMIN / APP_ADMIN_SUPER_ADMIN — not any org member / app\n * user who can merely read it. (Read-authority ⊉ delete-authority.)\n */\nconst OWNER_DELETE_ROLES = {\n [CoreResourceType.USERS]: [CORE_APP_ROLES.APP_USER],\n [CoreResourceType.ORGANIZATIONS]: [CORE_ORG_ROLES.ORG_ADMIN],\n [CoreResourceType.APPLICATION]: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n};\n\n/**\n * Polymorphic factory map for flows-actors executions. Spread into\n * `coreShared_ResourcesConfigurations_FactoryMap`:\n * ...flowActorExecutionsPolymorphicFactories\n *\n * Produces entries for:\n * - userFlowActorExecutions\n * - organizationFlowActorExecutions\n * - applicationFlowActorExecutions\n */\nexport const flowActorExecutionsPolymorphicFactories = createPolymorphicResourceConfigurations(\n flowActorExecutionsPolymorphicDeclaration,\n {\n isSystemResource: true,\n\n // Opt the conversational runtime (system actor) into scoped writes/reads on the\n // owner's behalf. Absent this, every `*AsSystem` verb fails closed. Shared by\n // all variants per the polymorphic-resource contract.\n systemAccessPolicy: {\n // Subject-export disclosure. The subject's own flow executions. Secrets and backend-only values are withheld by the export's security floor regardless of this grant. On a polymorphic resource this grant applies to EVERY generated variant, which is the documented intent of the shared config.\n exportSubject: ResourceSystemAccessMode.ALLOWED,\n create: ResourceSystemAccessMode.ALLOWED,\n read: ResourceSystemAccessMode.ALLOWED,\n list: ResourceSystemAccessMode.ALLOWED,\n update: ResourceSystemAccessMode.ALLOWED,\n },\n portabilityPolicy: { defaultProvenance: DataPortabilityProvenance.OBSERVED },\n\n /**\n * Subject erasure RETAINS this row and RESETS the conversation.\n *\n * `messages` is the conversation itself — the person's own words and the model's replies to them — so\n * `RETAIN_ONLY` would be false and the factory refuses it. It is a defaulted array, so REMOVE (needs\n * clearable) and MASK (needs a string) both refuse; `RedactionType.RESET` returns it to the empty default.\n *\n * Note the contrast with the sibling `flowActorTasks`, whose content fields are optional strings and take\n * REMOVE. Same subsystem, same kind of content, different container — which is why RESET had to exist for\n * this one to declare any posture at all.\n */\n retentionPolicy: {\n mode: ErasureRetentionMode.RETAIN_AND_IMPERSONALIZE,\n },\n\n /**\n * Erasing one of these rows revokes NO session. The row is work performed for a person, not the person; its\n * owner FK names the scope the work ran in.\n */\n dataSubjectPolicy: { kind: ResourceDataSubjectKind.NO_PRINCIPAL },\n\n coreOperations: [\n CoreResourceOperation.CREATE,\n CoreResourceOperation.READ,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.LIST,\n CoreResourceOperation.DELETE,\n // Route-less; `retentionPolicy` requires READ + LIST + UPDATE_MANY.\n CoreResourceOperation.UPDATE_MANY,\n ],\n\n operationsConfiguration: {\n\n /*\n\n * Route-less retention plumbing — INTERNAL_CALL registers no route, so no API surface is added, and it\n\n * must not be REPOSITORY_ONLY: the retention primitives resolve through `getServiceOperationPathDefault`,\n\n * which matches only INTERNAL_CALL / API_CALL. LIST is LOW (a read-shaped op may not claim the\n\n * HIGH/CRITICAL band, which carries an audit-emission obligation); UPDATE_MANY is CRITICAL — it is the\n\n * verb the impersonalize writer uses to stamp the retention markers.\n\n */\n\n [CoreResourceOperation.UPDATE_MANY]: {\n\n variants: [{\n\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n\n isDefault: true,\n\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n\n riskLevel: ResourceOperationRiskLevel.CRITICAL,\n\n }],\n\n },\n\n // === READ === owner reads their own execution (chat history)\n [CoreResourceOperation.READ]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: OWNER_READ_ROLES,\n riskLevel: ResourceOperationRiskLevel.LOW,\n }],\n },\n\n // === LIST === owner lists their own executions (history index)\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: OWNER_READ_ROLES,\n riskLevel: ResourceOperationRiskLevel.LOW,\n }],\n },\n\n // === CREATE === system runtime opens an execution (via createAsSystem).\n // No explicit request DTO: auto-derives per variant so the injected owner FK\n // is required on the correct variant. Super-admin INTERNAL_CALL — the write is\n // governed by systemAccessPolicy, not this role.\n [CoreResourceOperation.CREATE]: {\n variants: [{\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n }],\n },\n\n // === UPDATE === system runtime appends messages / advances status.\n // Owner-agnostic shared DTO (owner is immutable).\n [CoreResourceOperation.UPDATE]: {\n variants: [{\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isDefault: true,\n roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n requestDto: FlowActorExecutionUpdateInternalSchema,\n }],\n },\n\n // === DELETE === destructive removal of a conversation. Role floor is DISTINCT\n // from read (OWNER_DELETE_ROLES: a user deletes only their own chat; org/app\n // conversations require org/app admin). The single API_CALL default ALSO powers\n // the composition onParentDelete cascade — the repository tier selects the\n // `isOperationDefault === true` DELETE op (`repository-resource.backend.service.ts`\n // `delete()`), so NO separate REPOSITORY_ONLY variant is needed (billing cascades\n // identically with one default; a second variant would be inert scaffolding).\n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n polymorphicRole: OWNER_DELETE_ROLES,\n riskLevel: ResourceOperationRiskLevel.HIGH,\n },\n ],\n },\n },\n },\n);\n"]}
|
|
@@ -84,6 +84,20 @@ export declare const FlowActorExecution_PausedApprovalSchema: z.ZodObject<{
|
|
|
84
84
|
expiresAt: z.ZodOptional<z.ZodString>;
|
|
85
85
|
}, z.core.$strip>;
|
|
86
86
|
export type FlowActorExecution_PausedApproval = z.infer<typeof FlowActorExecution_PausedApprovalSchema>;
|
|
87
|
+
/**
|
|
88
|
+
* How long a human has to answer an approval-gated tool call before the turn is refused.
|
|
89
|
+
*
|
|
90
|
+
* **24 hours.** An agent pausing for a person should span a working day plus a night, so a request
|
|
91
|
+
* raised late in the afternoon is still answerable the next morning. Much beyond that and the
|
|
92
|
+
* decision stops being meaningful rather than merely late: the person is approving a tool call made
|
|
93
|
+
* against a conversation, a world and an intent that have all moved on, and "do you approve this?"
|
|
94
|
+
* with no memory of the question is a prompt people click through.
|
|
95
|
+
*
|
|
96
|
+
* A framework default rather than an operator knob, for now. If an application ever needs its own,
|
|
97
|
+
* the knob goes beside the consent lifetime in the auth config — but nobody has asked, and a
|
|
98
|
+
* timeout that every application authors identically is a default wearing a config field.
|
|
99
|
+
*/
|
|
100
|
+
export declare const FLOW_ACTOR_APPROVAL_DEFAULT_TIMEOUT_MS: number;
|
|
87
101
|
/** Serialize paused-approval state for the scalar `pausedApproval` string column. */
|
|
88
102
|
export declare function serializeFlowActorPausedApproval(state: FlowActorExecution_PausedApproval): string;
|
|
89
103
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows-actors-execution.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/flows-actors/flows-actors-execution.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAA2E,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAGpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"flows-actors-execution.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/flows-actors/flows-actors-execution.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAA2E,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAGpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAM5E,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,kDAAkD,CAAC;AAQ1D;;;;;GAKG;AACH,oBAAY,4BAA4B;IACtC,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED;;;;;GAKG;AACH,oBAAY,8BAA8B;IACxC,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,eAAO,MAAM,gCAAgC;;;;;;;iBAwB3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F;;;;;;;GAOG;AACH,eAAO,MAAM,uCAAuC;;;;;;;iBA4ClD,CAAC;AACH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAExG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sCAAsC,QAAsB,CAAC;AAE1E,qFAAqF;AACrF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iCAAiC,GAAG,MAAM,CAEjG;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,iCAAiC,CAE3F;AAuBD;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;iBAoIvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAMlF;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC,EAAE,4BAA4B,EAIvC,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;kBAMpD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;iBAqBjD,CAAC;AAMH;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -31,11 +31,12 @@
|
|
|
31
31
|
* log mirrors (`WS_FlowsActorsMessagePayloadSchema`)
|
|
32
32
|
*/
|
|
33
33
|
import { z } from 'zod';
|
|
34
|
-
import { initZodDecorators } from '@wildo-ai/zod-decorators';
|
|
34
|
+
import { initZodDecorators, addImpersonalizeWith } from '@wildo-ai/zod-decorators';
|
|
35
35
|
import { FlowsActors_Status } from './flows-actors.commons.shared.schemas.js';
|
|
36
36
|
import { DataPortabilityProvenance } from '../compliance/privacy/subject-export.shared.schemas.js';
|
|
37
37
|
import { PersonalDataCategory } from '../compliance/privacy/personal-data-category.shared.schemas.js';
|
|
38
38
|
import { FlowActorSystem_Kind } from './flows-actors.system.shared.schemas.js';
|
|
39
|
+
import { RedactionType } from '../compliance/privacy/redaction.shared.schemas.js';
|
|
39
40
|
import { CoreResourceType, coreResourceShared_FieldIdentifier, } from '../resources/resources.shared.core.definitions.js';
|
|
40
41
|
import { declarePolymorphicSchemas, optOutPolymorphicAutoBusinessKey, } from '../resources/utils/resource-polymorphism.schemas.js';
|
|
41
42
|
initZodDecorators(z);
|
|
@@ -71,8 +72,18 @@ export var FlowsActors_MessageContentType;
|
|
|
71
72
|
export const FlowActorExecution_MessageSchema = z.object({
|
|
72
73
|
/** Stable per-message id (client-correlatable across stream deltas). */
|
|
73
74
|
id: z.uuid(),
|
|
74
|
-
role: z.enum(FlowsActors_ConversationRole)
|
|
75
|
-
|
|
75
|
+
role: z.enum(FlowsActors_ConversationRole)
|
|
76
|
+
.describe('Who produced this message.\n\nValues:\n'
|
|
77
|
+
+ '- `user`: the person, or the client acting for them.\n'
|
|
78
|
+
+ '- `assistant`: the agent.\n'
|
|
79
|
+
+ '- `system`: instructions the agent was given, not part of the conversation a person sees.\n'
|
|
80
|
+
+ '- `tool`: the result of something the agent called.'),
|
|
81
|
+
contentType: z.enum(FlowsActors_MessageContentType).default(FlowsActors_MessageContentType.TEXT)
|
|
82
|
+
.describe('How to render `content`.\n\nValues:\n'
|
|
83
|
+
+ '- `text`: plain text.\n'
|
|
84
|
+
+ '- `markdown`: text with Markdown formatting.\n'
|
|
85
|
+
+ '- `progress`: an interim note about work in flight; `data` carries the detail.\n'
|
|
86
|
+
+ '- `data`: a structured payload rather than prose; read `data`, not `content`.'),
|
|
76
87
|
/** Rendered text content (may be assembled from streamed deltas). */
|
|
77
88
|
content: z.string(),
|
|
78
89
|
/** Structured payload for `DATA`/`PROGRESS` messages (tool results, progress). */
|
|
@@ -116,9 +127,36 @@ export const FlowActorExecution_PausedApprovalSchema = z.object({
|
|
|
116
127
|
pendingToolArgs: z.record(z.string(), z.unknown()).optional(),
|
|
117
128
|
/** ISO timestamp when the approval was requested. */
|
|
118
129
|
requestedAt: z.string(),
|
|
119
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* ISO instant after which the paused turn must not be resumed.
|
|
132
|
+
*
|
|
133
|
+
* SET ON EVERY SUSPENSION since 2026-09-08 (#465). It was declared here, carried on the
|
|
134
|
+
* approval-request WebSocket payload and read and converted by the browser, and NO WRITER EVER SET
|
|
135
|
+
* IT — so a pending approval never expired and the field described a timeout that did not exist.
|
|
136
|
+
*
|
|
137
|
+
* The terminal state on expiry is `FlowsActors_Status.FAILED`, which the status vocabulary already
|
|
138
|
+
* named ("resolves to PROCESSING→COMPLETED on approval, or a terminal state on denial/expiry").
|
|
139
|
+
* Nothing new was invented for it.
|
|
140
|
+
*
|
|
141
|
+
* Still optional: a suspension persisted before that date carries none, and an absent expiry means
|
|
142
|
+
* the pause does not lapse — which is what those turns were paused under.
|
|
143
|
+
*/
|
|
120
144
|
expiresAt: z.string().optional(),
|
|
121
145
|
});
|
|
146
|
+
/**
|
|
147
|
+
* How long a human has to answer an approval-gated tool call before the turn is refused.
|
|
148
|
+
*
|
|
149
|
+
* **24 hours.** An agent pausing for a person should span a working day plus a night, so a request
|
|
150
|
+
* raised late in the afternoon is still answerable the next morning. Much beyond that and the
|
|
151
|
+
* decision stops being meaningful rather than merely late: the person is approving a tool call made
|
|
152
|
+
* against a conversation, a world and an intent that have all moved on, and "do you approve this?"
|
|
153
|
+
* with no memory of the question is a prompt people click through.
|
|
154
|
+
*
|
|
155
|
+
* A framework default rather than an operator knob, for now. If an application ever needs its own,
|
|
156
|
+
* the knob goes beside the consent lifetime in the auth config — but nobody has asked, and a
|
|
157
|
+
* timeout that every application authors identically is a default wearing a config field.
|
|
158
|
+
*/
|
|
159
|
+
export const FLOW_ACTOR_APPROVAL_DEFAULT_TIMEOUT_MS = 24 * 60 * 60 * 1000;
|
|
122
160
|
/** Serialize paused-approval state for the scalar `pausedApproval` string column. */
|
|
123
161
|
export function serializeFlowActorPausedApproval(state) {
|
|
124
162
|
return JSON.stringify(state);
|
|
@@ -240,11 +278,15 @@ export const FlowActorExecutionBaseSchema = z.object({
|
|
|
240
278
|
* The task family's `output`/`artifacts` are DERIVED by contrast, and that is not an
|
|
241
279
|
* inconsistency: those are model output ABOUT the work, with no subject-authored content mixed in.
|
|
242
280
|
*/
|
|
243
|
-
|
|
281
|
+
// RESET on erasure — returns this field to its schema default. It holds the conversation itself,
|
|
282
|
+
// which the category above correctly declares as personal data. RESET rather than REMOVE or MASK
|
|
283
|
+
// because the field is non-nullable WITH a `.default()`: REMOVE needs a clearable field and MASK
|
|
284
|
+
// needs a string. The value comes from the schema, so there is no second copy to drift.
|
|
285
|
+
messages: addImpersonalizeWith(FlowActorExecution_MessageSchema.array().default([])
|
|
244
286
|
.portabilityProvenance(DataPortabilityProvenance.SUBJECT_PROVIDED)
|
|
245
287
|
// The conversation itself. Category as well as provenance, so a notice can enumerate it: the two
|
|
246
288
|
// axes answer different questions and a provenance alone leaves the field an OUTSTANDING gap.
|
|
247
|
-
.dataCategories(PersonalDataCategory.USER_CONTENT),
|
|
289
|
+
.dataCategories(PersonalDataCategory.USER_CONTENT), RedactionType.RESET),
|
|
248
290
|
// === HITL (human-in-the-loop) suspension ===
|
|
249
291
|
/**
|
|
250
292
|
* Serialized {@link FlowActorExecution_PausedApproval} — present ONLY while `status` is
|