Help
RSS
API
Feed
Maltego
Contact
Domain > doc-agent-test.cliexa.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2026-02-08
137.116.88.213
(
ClassC
)
Port 443
HTTP/1.1 200 OKContent-Length: 45417Content-Type: text/html; charsetutf-8Date: Sun, 08 Feb 2026 20:51:07 GMTServer: uvicornx-correlation-id: 81461fa6-ae06-4cb3-a36a-44651747fbf3X-Request-ID: 81461fa6-ae06-4cb3-a36a-44651747fbf3 !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>cliexa Dynamic Note Generator/title> link relpreconnect hrefhttps://fonts.googleapis.com> link relpreconnect hrefhttps://fonts.gstatic.com crossorigin> link hrefhttps://fonts.googleapis.com/css2?familyFigtree:ital,wght@0,300..900;1,300..900&displayswap relstylesheet> script srchttps://cdn.jsdelivr.net/npm/marked@9.1.2/marked.min.js>/script> style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Figtree, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; color: #333; line-height: 1.6; } .container { max-width: 1200px; margin: 0 auto; padding: 2rem; } .header { text-align: center; margin-bottom: 3rem; } .header h1 { color: white; font-size: 2.5rem; font-weight: 600; margin-bottom: 0.5rem; text-shadow: 0 2px 4px rgba(0,0,0,0.1); } .header p { color: rgba(255, 255, 255, 0.9); font-size: 1.1rem; font-weight: 400; } .form-container { background: white; border-radius: 16px; padding: 2.5rem; box-shadow: 0 20px 40px rgba(0,0,0,0.1); margin-bottom: 2rem; } .form-group { margin-bottom: 2rem; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 2rem; } .form-group label { display: block; margin-bottom: 0.75rem; font-weight: 500; color: #374151; font-size: 1rem; } .form-group textarea, .form-group select, .form-group inputtypetext { width: 100%; padding: 1rem; border: 2px solid #e5e7eb; border-radius: 8px; font-family: Figtree, sans-serif; font-size: 0.95rem; transition: all 0.2s ease; resize: vertical; } .form-group textarea:focus, .form-group select:focus, .form-group inputtypetext:focus { outline: none; border-color: #667eea; box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); } .form-group textarea { min-height: 150px; font-family: Monaco, Menlo, monospace; } .form-group select { appearance: none; background: url(data:image/svg+xml,%3csvg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 20 20%3e%3cpath stroke%236b7280 stroke-linecapround stroke-linejoinround stroke-width1.5 dm6 8 4 4 4-4/%3e%3c/svg%3e) no-repeat right 0.75rem center/1.5em 1.5em; background-color: white; } .input-type-toggle { display: flex; gap: 1.5rem; margin-top: 0.5rem; } .radio-option { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; font-size: 0.95rem; font-weight: 400; } .radio-option inputtyperadio { width: 1.2rem; height: 1.2rem; accent-color: #667eea; cursor: pointer; } .radio-option span { color: #374151; } .input-container-transition { transition: all 0.3s ease; } .generate-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; padding: 1rem 2rem; border-radius: 8px; font-family: Figtree, sans-serif; font-size: 1rem; font-weight: 500; cursor: pointer; transition: all 0.2s ease; width: 100%; margin-top: 1rem; } .generate-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(102, 126, 234, 0.3); } .generate-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; } .loading { display: inline-block; width: 20px; height: 20px; border: 3px solid rgba(255,255,255,.3); border-radius: 50%; border-top-color: #fff; animation: spin 1s ease-in-out infinite; margin-right: 0.5rem; } @keyframes spin { to { transform: rotate(360deg); } } .results-container { background: white; border-radius: 16px; padding: 2.5rem; box-shadow: 0 20px 40px rgba(0,0,0,0.1); display: none; } .results-container.show { display: block; } .results-header { margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 2px solid #f3f4f6; } .results-header h2 { color: #374151; font-size: 1.5rem; font-weight: 600; } .result-section { margin-bottom: 2rem; } .result-section h3 { color: #667eea; font-size: 1.2rem; font-weight: 500; margin-bottom: 1rem; } .result-section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .markdown-toggle { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: #6b7280; } .toggle-switch { position: relative; display: inline-block; width: 44px; height: 24px; } .toggle-switch input { opacity: 0; width: 0; height: 0; } .toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #e5e7eb; transition: 0.3s; border-radius: 24px; } .toggle-slider:before { position: absolute; content: ; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: white; transition: 0.3s; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .toggle-switch input:checked + .toggle-slider { background-color: #667eea; } .toggle-switch input:checked + .toggle-slider:before { transform: translateX(20px); } .result-content { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 1.5rem; font-family: Monaco, Menlo, monospace; font-size: 0.9rem; line-height: 1.5; white-space: pre-wrap; overflow-x: auto; } /* Markdown styling for human-readable notes */ .result-content.markdown { font-family: Figtree, sans-serif; white-space: normal; } .result-content.markdown h1, .result-content.markdown h2, .result-content.markdown h3, .result-content.markdown h4, .result-content.markdown h5, .result-content.markdown h6 { color: #374151; font-weight: 600; margin-top: 1.5rem; margin-bottom: 0.75rem; } .result-content.markdown h1 { font-size: 1.5rem; } .result-content.markdown h2 { font-size: 1.3rem; } .result-content.markdown h3 { font-size: 1.1rem; } .result-content.markdown h4 { font-size: 1rem; } .result-content.markdown p { margin-bottom: 1rem; color: #4b5563; } .result-content.markdown ul, .result-content.markdown ol { margin-left: 1.5rem; margin-bottom: 1rem; } .result-content.markdown li { margin-bottom: 0.25rem; color: #4b5563; } .result-content.markdown strong { font-weight: 600; color: #374151; } .result-content.markdown em { font-style: italic; } .result-content.markdown code { background-color: #e5e7eb; padding: 0.125rem 0.25rem; border-radius: 0.25rem; font-family: Monaco, Menlo, monospace; font-size: 0.875em; } .result-content.markdown pre { background-color: #1f2937; color: #f9fafb; padding: 1rem; border-radius: 0.5rem; overflow-x: auto; margin-bottom: 1rem; } .result-content.markdown pre code { background-color: transparent; padding: 0; color: inherit; } .result-content.markdown blockquote { border-left: 4px solid #667eea; padding-left: 1rem; margin: 1rem 0; color: #6b7280; font-style: italic; } .result-content.markdown table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; } .result-content.markdown th, .result-content.markdown td { border: 1px solid #e5e7eb; padding: 0.5rem; text-align: left; } .result-content.markdown th { background-color: #f3f4f6; font-weight: 600; } .error-message { background: #fee2e2; border: 1px solid #fecaca; color: #dc2626; padding: 1rem; border-radius: 8px; margin-bottom: 1rem; } .success-message { background: #dcfce7; border: 1px solid #bbf7d0; color: #16a34a; padding: 1rem; border-radius: 8px; margin-bottom: 1rem; } @media (max-width: 768px) { .container { padding: 1rem; } .form-row { grid-template-columns: 1fr; gap: 1rem; } .header h1 { font-size: 2rem; } .form-container, .results-container { padding: 1.5rem; } } /style>/head>body> div classcontainer> div classheader> h1>cliexa Dynamic Note Generator Test Page/h1> p>v0.1/p> /div> div classform-container> form idnoteForm> div classform-group> label>Patient Data Input Type (Optional)/label> div classinput-type-toggle> label classradio-option> input typeradio namepatientInputType valuenone checked> span>None (transcript only)/span> /label> label classradio-option> input typeradio namepatientInputType valuestructured> span>Structured JSON/span> /label> label classradio-option> input typeradio namepatientInputType valuenarrative> span>Narrative Text/span> /label> /div> /div> div classform-row> div classform-group idpatientInputGroup> div idstructuredInputContainer styledisplay: none;> label forpatientData>Patient JSON Data/label> textarea idpatientData placeholderEnter patient JSON data here, e.g.:{ patient_id: PAT001, name: Jane Doe, date_of_birth: 1995-03-15, age: 28, gender: Female, admission_date: 2024-01-15, diagnoses: Anorexia Nervosa, medications: , allergies: Penicillin, vital_signs: {}, lab_results: {}} >/textarea> /div> div idnarrativeInputContainer styledisplay: none;> label forpatientNarrative>Patient Information (Narrative)/label> textarea idpatientNarrative placeholderDescribe the patient information in natural language, e.g.:The patient is Jennifer Smith, an 18-year-old female (DOB: June 22, 2007) with patient ID PT-2024-006. She was admitted on August 1st, 2025 with a primary diagnosis of Anorexia nervosa, restricting type, along with generalized anxiety disorder and a mild single episode of major depression. She currently weighs 115.2 lbs (52.2 kg) and is 5 feet 7 inches tall. Her current medications include Fluoxetine 40mg daily for depression and anxiety, Hydroxyzine 25mg three times daily for anxiety, Melatonin 3mg at bedtime for sleep, Docusate Sodium 100mg twice daily for constipation, and a daily multivitamin for nutritional support. She has allergies to Penicillin. Her vital signs from today show blood pressure of 110/70, pulse of 74, and she is currently in the Partial Hospitalization level of care. >/textarea> /div> div idnoneInputContainer> label>Patient Information/label> div stylebackground: #f8fafc; border: 2px dashed #cbd5e1; border-radius: 8px; padding: 1.5rem; text-align: center; color: #64748b;> p stylemargin: 0; font-size: 0.95rem;>No separate patient data - information will be extracted from the session transcript/p> /div> /div> /div> div classform-group> label forsessionTranscript>Session Transcript/label> textarea idsessionTranscript placeholderEnter the session transcript here... required >/textarea> /div> /div> div classform-row> div classform-group> label forsessionMetadata>Session Metadata (Optional)/label> textarea idsessionMetadata placeholderEnter session metadata JSON (optional), e.g.:{ session_id: SES001, session_date: 2024-01-15, session_type: Initial Assessment, clinician_name: Dr. Smith, clinician_title: Psychiatrist, duration_minutes: 60, location: Room 101} >/textarea> /div> div classform-group> label fornoteType>Note Type/label> select idnoteType required> option value>Select note type.../option> option valuebetr_dietician_nutrition_assessment>RD: Nutritional Admission Assessment Note (BETR)/option> option valuecat_intake_assessment>CAT: Clinical Intake Assessment/option> option valuecat_progress_note>CAT: Clinical Update/option> option valuecat_progress_note_v2>CAT: Clinical Update v2/option> option valuedietician_nutrition_assessment>RD: Nutritional Admission Assessment Note (ED)/option> option valuedietician_progress_note>RD: Individual Note/option> option valuedietician_progress_note_v2>RD: Individual Note (v2)/option> option valuedietician_progress_note_v2_dropdowns>RD: Individual Note (v2 - Dropdowns)/option> option valueed_iop_admission_note>PriT: IOP Admission Assessment (ED)/option> option valuegroup_team_rounds_note>Psych: Team Rounds Note/option> option valueindividual_therapy_mood_anxiety_ip_res_php_v2>PriT: Individual Therapy Mood & Anxiety (IP/RES/PHP v2)/option> option valuematr_iop_admission_note>PriT: (MATR) IOP Admission Assessment/option> option valuemedical_doctor_h_and_p>MD: H&P Admission Assessment/option> option valuenursing_ip_admission_assessment>RN: (IP) Nursing Admission Assessment/option> option valuenursing_php_admission_assessment_note>RN: (PHP) Nursing Admission Assessment/option> option valuepcp_follow_up_note>MD: Internal Medicine Follow-Up Note/option> option valuepcp_follow_up_note_v2>MD: Internal Medicine Follow-Up Note v2/option> option valueprit_family_therapy_session>PriT: Family Session Note/option> option valueprit_individual_note_iop>PriT: Individual Note (Intensive Outpatient)/option> option valueprit_discharge_summary_note>PriT: Discharge Summary Note/option> option valuepsychiatrist_admission_note>Psych: (ERC) Psychiatric Admission Assessment, Psych: (Pathlight) Psychiatric Admission Assessment (Same Note)/option> option valuepsychiatrist_discharge_summary_note>Psych: Discharge Summary Note/option> option valuepsychiatrist_individual_note_v2>Psych: Individual Note v2/option> option valuepsychiatrist_progress_note>Psych: Individual Note/option> option valuepsychiatric_progress_note_matr_v2>Psychiatric Progress Note - MATR v2/option> option valuepsychosocial_assessment>PriT: Psychosocial Admission Assessment/option> option valuesafe_t_assessment>PriT: SAFE-T Admission Assessment/option> option valuetherapist_progress_note>PriT: Individual Session Note/option> option valuetherapist_progress_note_v2>PriT: Individual Session Note v2/option> option valuedietitian_discharge_note>Discharge Note - Dietitian/option> option valueinternal_medicine_discharge_note>Discharge Note - Internal Medicine Provider/option> option valueteam_rounds_matr_note>Team Rounds - MATR/option> /select> /div> /div> !-- Single Section Testing Toggle --> div classform-group stylebackground: #f0f9ff; border: 2px solid #bae6fd; border-radius: 8px; padding: 1.5rem; margin-bottom: 2rem;> label styledisplay: flex; align-items: center; gap: 0.75rem; cursor: pointer; margin-bottom: 0.5rem;> input typecheckbox idsingleSectionMode stylewidth: 1.3rem; height: 1.3rem; accent-color: #667eea; cursor: pointer;> span stylefont-weight: 600; font-size: 1.05rem; color: #374151;>🧪 Test Single Section Only/span> /label> p stylemargin: 0.5rem 0 0 2rem; font-size: 0.9rem; color: #64748b; line-height: 1.5;> Enable this to generate and test individual sections without creating the entire note. Perfect for rapid iteration during schema development (⚡ ~10x faster). /p> !-- Section selector - shown when checkbox is enabled --> div idsectionSelector styledisplay: none; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #bae6fd;> label forsectionId styledisplay: block; margin-bottom: 0.75rem; font-weight: 500; color: #374151;> Select Section to Test /label> select idsectionId stylewidth: 100%; padding: 0.75rem; border: 2px solid #e5e7eb; border-radius: 6px; font-family: Figtree, sans-serif; font-size: 0.95rem;> option value>First select a note type above.../option> /select> small styledisplay: block; margin-top: 0.5rem; color: #64748b; font-size: 0.85rem;> ⚡ This will generate only the selected section for quick testing /small> /div> /div> div classform-row> div classform-group> label formodelProvider>AI Model Provider (Optional)/label> select idmodelProvider> option valuedefault>Default (from .env)/option> option valueopenai>OpenAI/option> option valueanthropic>Anthropic (Claude)/option> /select> /div> div classform-group> label formodelName>Model Name (Optional)/label> input typetext idmodelName placeholdere.g., gpt-4-turbo-preview or claude-3-5-sonnet-20241022 /> small styledisplay: block; margin-top: 0.5rem; color: #64748b; font-size: 0.85rem;> Leave empty to use providers default model /small> /div> /div> button typesubmit classgenerate-btn idgenerateBtn> Generate Note /button> script> // Update button text based on single section mode document.getElementById(singleSectionMode).addEventListener(change, function() { const btn document.getElementById(generateBtn); btn.innerHTML this.checked ? Generate Section : Generate Note; }); /script> /form> /div> div classresults-container idresultsContainer> div classresults-header> h2>Generated Note/h2> /div> div idresultsContent>/div> /div> /div> script> // Dynamically determine API base URL based on environment const API_BASE_URL (() > { // Check if were running on localhost (development) if (window.location.hostname localhost || window.location.hostname 127.0.0.1) { return http://localhost:8000; } // In production, use the same origin as the frontend return window.location.origin; })(); // Handle input type toggle document.querySelectorAll(inputnamepatientInputType).forEach(radio > { radio.addEventListener(change, function() { const structuredContainer document.getElementById(structuredInputContainer); const narrativeContainer document.getElementById(narrativeInputContainer); const noneContainer document.getElementById(noneInputContainer); if (this.value none) { structuredContainer.style.display none; narrativeContainer.style.display none; noneContainer.style.display block; document.getElementById(patientData).setAttribute(disabled, true); document.getElementById(patientNarrative).setAttribute(disabled, true); } else if (this.value structured) { structuredContainer.style.display block; narrativeContainer.style.display none; noneContainer.style.display none; document.getElementById(patientData).removeAttribute(disabled); document.getElementById(patientNarrative).setAttribute(disabled, true); } else if (this.value narrative) { structuredContainer.style.display none; narrativeContainer.style.display block; noneContainer.style.display none; document.getElementById(patientData).setAttribute(disabled, true); document.getElementById(patientNarrative).removeAttribute(disabled); } }); }); // Handle single section mode toggle const singleSectionModeCheckbox document.getElementById(singleSectionMode); const sectionSelectorDiv document.getElementById(sectionSelector); const noteTypeSelect document.getElementById(noteType); singleSectionModeCheckbox.addEventListener(change, function() { if (this.checked) { sectionSelectorDiv.style.display block; // Load sections if note type is already selected if (noteTypeSelect.value) { loadSectionsForNoteType(noteTypeSelect.value); } } else { sectionSelectorDiv.style.display none; } }); // Handle note type change - load sections if single section mode is enabled noteTypeSelect.addEventListener(change, function() { if (singleSectionModeCheckbox.checked && this.value) { loadSectionsForNoteType(this.value); } }); // Function to load sections for a note type async function loadSectionsForNoteType(noteType) { const sectionSelect document.getElementById(sectionId); try { // Show loading state sectionSelect.innerHTML option value>Loading sections.../option>; sectionSelect.disabled true; // Fetch sections from API const response await fetch(`${API_BASE_URL}/sections/${noteType}`); if (!response.ok) { throw new Error(`Failed to load sections: ${response.status}`); } const data await response.json(); // Populate dropdown with sections sectionSelect.innerHTML data.sections.map(section > { const requiredLabel section.required ? (required) : (optional); const formatLabel section.output_format ? ` ${section.output_format}` : ; return `option value${section.id}>${section.title} ${requiredLabel}${formatLabel}/option>`; }).join(); sectionSelect.disabled false; // Show success feedback console.log(`Loaded ${data.count} sections for ${noteType}`); } catch (error) { console.error(Error loading sections:, error); sectionSelect.innerHTML option value>Error loading sections/option>; sectionSelect.disabled false; } } document.getElementById(noteForm).addEventListener(submit, async function(e) { e.preventDefault(); const generateBtn document.getElementById(generateBtn); const resultsContainer document.getElementById(resultsContainer); const resultsContent document.getElementById(resultsContent); // Get form data const inputType document.querySelector(inputnamepatientInputType:checked).value; const sessionTranscript document.getElementById(sessionTranscript).value.trim(); const sessionMetadataText document.getElementById(sessionMetadata).value.trim(); const noteType document.getElementById(noteType).value; const modelProvider document.getElementById(modelProvider).value; const modelName document.getElementById(modelName).value.trim(); // Check if single section mode is enabled const singleSectionMode document.getElementById(singleSectionMode).checked; const sectionId document.getElementById(sectionId).value; // Get patient input based on type let patientInput null; if (inputType structured) { const patientDataText document.getElementById(patientData).value.trim(); if (!patientDataText) { showError(Please fill in the patient JSON data.); return; } try { const patientData JSON.parse(patientDataText); patientInput { structured_data: patientData }; } catch (error) { showError(Invalid Patient JSON data. Please check the format.); return; } } else if (inputType narrative) { const patientNarrativeText document.getElementById(patientNarrative).value.trim(); if (!patientNarrativeText) { showError(Please fill in the patient narrative information.); return; } patientInput { narrative_data: patientNarrativeText }; } // If inputType none, patientInput remains null // Validate required fields if (!sessionTranscript || !noteType) { showError(Please fill in all required fields.); return; } // Additional validation for single section mode if (singleSectionMode && !sectionId) { showError(Please select a section to test.); return; } // Parse session metadata if provided let sessionMetadata; if (sessionMetadataText) { try { sessionMetadata JSON.parse(sessionMetadataText); } catch (error) { showError(Invalid Session Metadata JSON. Please check the format.); return; } } // Show loading state generateBtn.disabled true; const loadingText singleSectionMode ? Generating section... : Generating note...; generateBtn.innerHTML `span classloading>/span>${loadingText}`; resultsContainer.classList.remove(show); try { // Prepare base request data const requestData { session_transcript: sessionTranscript, note_type: noteType }; // Add section_id if in single section mode if (singleSectionMode) { requestData.section_id sectionId; } // Only include patient_input if its provided if (patientInput) { requestData.patient_input patientInput; } if (sessionMetadata) { requestData.session_metadata sessionMetadata; } // Add model selection if not default if (modelProvider ! default) { let finalModel modelName; // If user didnt provide a model name, use provider defaults if (!modelName) { if (modelProvider openai) { finalModel gpt-4-turbo-preview; } else if (modelProvider anthropic) { finalModel claude-3-5-sonnet-20241022; } } if (finalModel) { requestData.model finalModel; } } // Choose endpoint based on mode const endpoint singleSectionMode ? /generate-section : /generate; // Make API request const response await fetch(`${API_BASE_URL}${endpoint}`, { method: POST, headers: { Content-Type: application/json, }, body: JSON.stringify(requestData) }); if (!response.ok) { const errorData await response.json(); throw new Error(errorData.detail || `HTTP ${response.status}`); } const result await response.json(); // Show appropriate results based on mode if (singleSectionMode) { showSectionResult(result, requestData.model); } else { showSuccess(result, requestData.model); } } catch (error) { const errorContext singleSectionMode ? section : note; console.error(`Error generating ${errorContext}:`, error); showError(`Failed to generate ${errorContext}: ${error.message}`); } finally { // Reset button state generateBtn.disabled false; generateBtn.innerHTML singleSectionMode ? Generate Section : Generate Note; } }); // Function to display single section results function showSectionResult(result, modelUsed) { const resultsContent document.getElementById(resultsContent); const resultsContainer document.getElementById(resultsContainer); const modelInfo modelUsed ? `br>strong>Model:/strong> ${modelUsed}` : ; const timeInfo `br>strong>Generation Time:/strong> ${result.generation_time_seconds}s`; // Validation badge styling const validationClass result.validation_passed ? success-message : error-message; const validationIcon result.validation_passed ? ✅ : ⚠️; const validationText result.validation_passed ? Validation Passed : Validation Issues Found; // Format raw section output let rawOutput; if (typeof result.section_output object) { rawOutput JSON.stringify(result.section_output, null, 2); } else { rawOutput result.section_output; } // Get formatted output (human-readable) const formattedOutput result.section_output_formatted || rawOutput; // Parse formatted output as markdown if it contains markdown elements const hasMarkdownElements formattedOutput.includes(**) || formattedOutput.includes(•) || formattedOutput.includes(\n); const formattedHtml hasMarkdownElements ? marked.parse(formattedOutput) : escapeHtml(formattedOutput); resultsContent.innerHTML ` div classsuccess-message> strong>🧪 Single Section Generated:/strong> ${result.section_title}${modelInfo}${timeInfo} /div> div classresult-section> div classresult-section-header> h3>Section Output/h3> div classmarkdown-toggle> span idsectionToggleLabel>Formatted/span> label classtoggle-switch> input typecheckbox idsectionToggle checked> span classtoggle-slider>/span> /label> span>Raw/span> /div> /div> div idsectionOutput classresult-content markdown data-raw${escapeHtml(rawOutput)}>${formattedHtml}/div> /div> div classresult-section> h3>Validation Results/h3> div class${validationClass}> strong>${validationIcon} ${validationText}/strong> /div> ${result.validation_errors.length > 0 ? ` div stylebackground: #fee2e2; border: 1px solid #fecaca; border-radius: 8px; padding: 1rem; margin-top: 1rem;> strong stylecolor: #dc2626;>Validation Errors:/strong> ul stylemargin: 0.5rem 0 0 1.5rem; color: #dc2626;> ${result.validation_errors.map(err > `li>${err}/li>`).join()} /ul> /div> ` : } ${result.validation_suggestions.length > 0 ? ` div stylebackground: #fef3c7; border: 1px solid #fde047; border-radius: 8px; padding: 1rem; margin-top: 1rem;> strong stylecolor: #ca8a04;>Suggestions:/strong> ul stylemargin: 0.5rem 0 0 1.5rem; color: #ca8a04;> ${result.validation_suggestions.map(sug > `li>${sug}/li>`).join()} /ul> /div> ` : } /div> div classresult-section> h3>Section Metadata/h3> div classresult-content>Section ID: ${result.section_id}Note Type: ${result.note_type}Title: ${result.section_title}/div> /div> `; // Add toggle functionality for section output const sectionToggle document.getElementById(sectionToggle); const sectionOutput document.getElementById(sectionOutput); const sectionToggleLabel document.getElementById(sectionToggleLabel); // Store both versions in closure const sectionRawContent rawOutput; const sectionFormattedContent formattedHtml; sectionToggle.addEventListener(change, function() { if (this.checked) { // Show formatted version sectionOutput.innerHTML sectionFormattedContent; sectionOutput.className result-content markdown; sectionToggleLabel.textContent Formatted; } else { // Show raw version sectionOutput.innerHTML escapeHtml(sectionRawContent); sectionOutput.className result-content; sectionToggleLabel.textContent Raw; } }); resultsContainer.classList.add(show); } function showError(message) { const resultsContent document.getElementById(resultsContent); const resultsContainer document.getElementById(resultsContainer); resultsContent.innerHTML ` div classerror-message> strong>Error:/strong> ${message} /div> `; resultsContainer.classList.add(show); } function showSuccess(result, modelUsed) { const resultsContent document.getElementById(resultsContent); const resultsContainer document.getElementById(resultsContainer); const modelInfo modelUsed ? `br>strong>Model:/strong> ${modelUsed}` : ; // Parse markdown for human-readable note const humanNoteHtml marked.parse(result.note_human); // Store content in variables to avoid data attribute truncation const rawContent result.note_human; const formattedContent humanNoteHtml; resultsContent.innerHTML ` div classsuccess-message> strong>Success:/strong> Note generated successfully for ${result.note_type}${modelInfo} /div> div classresult-section> div classresult-section-header> h3>Human-Readable Note/h3> div classmarkdown-toggle> span idtoggleLabel>Formatted/span> label classtoggle-switch> input typecheckbox idmarkdownToggle checked> span classtoggle-slider>/span> /label> span>Raw/span> /div> /div> div idhumanNote classresult-content markdown>${formattedContent}/div> /div> div classresult-section> h3>Structured JSON/h3> div classresult-content>${escapeHtml(JSON.stringify(result.note_json, null, 2))}/div> /div> div classresult-section> h3>Generation Details/h3> div classresult-content>Generated at: ${result.generation_timestamp}Sections: ${result.sections_generated.join(, )}Validation Summary: ${JSON.stringify(result.validation_summary, null, 2)}/div> /div> `; // Add toggle functionality with content stored in closure const toggle document.getElementById(markdownToggle); const humanNote document.getElementById(humanNote); const toggleLabel document.getElementById(toggleLabel); toggle.addEventListener(change, function() { if (this.checked) { // Show formatted markdown humanNote.innerHTML formattedContent; humanNote.className result-content markdown; toggleLabel.textContent Formatted; } else { // Show raw markdown (properly escaped for display) humanNote.innerHTML escapeHtml(rawContent); humanNote.className result-content; toggleLabel.textContent Raw; } }); resultsContainer.classList.add(show); } function escapeHtml(text) { const div document.createElement(div); div.textContent text; return div.innerHTML; } /script>/body>/html>
Subdomains
Date
Domain
IP
sense.cliexa.com
2026-02-06
44.230.115.150
doc-agent-dashboard-test.cliexa.com
2026-02-08
137.116.88.213
doc-agent-test.cliexa.com
2026-02-08
137.116.88.213
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]