fix(public-tender): IAV-1202 chat session handling, MIN_AMOUNT alerts, integrations, MultiSelect merge
Chat & conversations
- Guard "Nouveau chat" against double-submit with a busy ref so /end is not called twice.
- End the current session only when status is not already COMPLETED; align with SessionStatus.
- Treat MEMORY_005 (conversation already ended) as non-fatal in the hook and in the conversation store; optimistically mark the session completed when appropriate.
Notifications & configuration (France alerts)
- Replace "montant maximum" / MAX_AMOUNT with "montant minimum" / MIN_AMOUNT and minAmountThreshold; keep reading legacy maxAmountThreshold / MAX_AMOUNT when present.
- Remove penalty-clause alerts from the wizard and configuration UI; ignore PENALTY_CLAUSES when hydrating from the backend.
- Deduplicate new tender sectors (order preserved) in wizard state and data transformers to avoid duplicates if the API merges on save.
Wizard & preferences
- Treat wizard identity step as complete once response tone is set; primary language stays optional (click again to clear; default config uses null language where applicable).
Integrations
- Add public-tender wizard replicateIntegration endpoint; replicate via PT backend with credentialType and optional Teams team/channel ids (JWT provides user; drop userUid from body).
- Extend wizard store types for integration responses (workflow created/updated, webhook URL).
- Slack dashboard: create user + agent integration via orchestration store; support copying generated webhook URL; adjust integration section wiring.
Audio & shared UI
- Add src/utils/audio-file.ts helpers; use for voice attachments and transcription uploads in unified chat and public tender chat.
- Resolve MultiSelect merge: support values as string[] or comma-separated string via valueArray; preserve develop behavior for disabled options (toggle guard, select-all vs selectable-only, allSelectableSelected for UI and handler).