gitextract_tqshek9r/ ├── .eslintrc.json ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app/ │ ├── (auth)/ │ │ ├── api/ │ │ │ └── auth/ │ │ │ ├── confirm/ │ │ │ │ └── route.ts │ │ │ └── esri/ │ │ │ ├── authorize/ │ │ │ │ └── route.ts │ │ │ └── callback/ │ │ │ └── route.ts │ │ ├── layout.tsx │ │ ├── login/ │ │ │ ├── actions.ts │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ └── styles.css │ ├── (broadcast)/ │ │ ├── api/ │ │ │ └── services/ │ │ │ └── esri/ │ │ │ ├── fetch-layers-list/ │ │ │ │ └── route.ts │ │ │ └── fetch-selected-layer/ │ │ │ └── route.ts │ │ ├── layout.tsx │ │ ├── services/ │ │ │ └── esri/ │ │ │ └── fetch-layers/ │ │ │ └── page.tsx │ │ └── styles.css │ ├── (main)/ │ │ ├── actions/ │ │ │ └── get-user-profile.ts │ │ ├── api/ │ │ │ ├── chat/ │ │ │ │ ├── chat-history/ │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── gee/ │ │ │ │ ├── request-geospatial-analysis/ │ │ │ │ │ └── route.ts │ │ │ │ └── request-loading-geospatial-data/ │ │ │ │ └── route.ts │ │ │ ├── sendfeedback/ │ │ │ │ └── route.ts │ │ │ ├── services/ │ │ │ │ └── google-maps/ │ │ │ │ ├── basemaps/ │ │ │ │ │ ├── roadmap/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── satellite/ │ │ │ │ │ └── route.ts │ │ │ │ ├── geocode/ │ │ │ │ │ └── route.ts │ │ │ │ └── places/ │ │ │ │ └── route.ts │ │ │ ├── user-usage/ │ │ │ │ └── route.ts │ │ │ └── web-scraper/ │ │ │ └── route.ts │ │ ├── chat/ │ │ │ └── [id]/ │ │ │ ├── layout.tsx │ │ │ ├── loading.tsx │ │ │ └── page.tsx │ │ ├── chat-history/ │ │ │ ├── layout.tsx │ │ │ ├── loading.tsx │ │ │ └── page.tsx │ │ ├── integrations/ │ │ │ ├── layout.tsx │ │ │ ├── loading.tsx │ │ │ └── page.tsx │ │ ├── knowledge-base/ │ │ │ ├── layout.tsx │ │ │ ├── loading.tsx │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ ├── loading.tsx │ │ ├── page.tsx │ │ └── styles.css │ └── actions/ │ └── rag-actions.ts ├── components/ │ ├── changelog-modal.tsx │ ├── client-hydrator.tsx │ ├── client-wrapper.tsx │ ├── document-viewer.tsx │ ├── feedback.tsx │ ├── loading-widgets/ │ │ ├── loading-for-widget.tsx │ │ └── loading-primary.tsx │ ├── main-sidebar/ │ │ ├── app-setttings.tsx │ │ └── main-sidebar.tsx │ ├── notices/ │ │ ├── privacy-policy.tsx │ │ └── terms-of-services.tsx │ ├── services/ │ │ └── esri/ │ │ └── add-arcgis-layers.tsx │ ├── theme-provider.tsx │ └── ui/ │ ├── alert-dialog.tsx │ ├── alert.tsx │ ├── badge.tsx │ ├── button.tsx │ ├── card.tsx │ ├── checkbox.tsx │ ├── confirmation-modal.tsx │ ├── dialog.tsx │ ├── dropdown-menu.tsx │ ├── form.tsx │ ├── input-text-confirm.tsx │ ├── input.tsx │ ├── label.tsx │ ├── popover.tsx │ ├── scroll-area.tsx │ ├── select.tsx │ ├── separator.tsx │ ├── table.tsx │ ├── textarea.tsx │ ├── theme-mode-toggle.tsx │ └── tooltip.tsx ├── components.json ├── custom-configs/ │ ├── ai-assistants.ts │ ├── charts-config.ts │ ├── integrations.ts │ └── project-config.ts ├── db-schema/ │ └── schema.sql ├── features/ │ ├── charts/ │ │ ├── components/ │ │ │ ├── charts-display.tsx │ │ │ └── charts.tsx │ │ └── utils/ │ │ └── select-chart-type.ts │ ├── chat/ │ │ ├── components/ │ │ │ ├── artifacts-sidebar/ │ │ │ │ └── artifacts-sidebar.tsx │ │ │ ├── chat-response-box/ │ │ │ │ ├── capabilities-banner.tsx │ │ │ │ ├── chat-message/ │ │ │ │ │ └── chat-message.tsx │ │ │ │ ├── chat-response-box.tsx │ │ │ │ └── in-response-tool-calling-results/ │ │ │ │ ├── display-in-chat-analysis-map/ │ │ │ │ │ └── display-in-chat-analysis-map-btn.tsx │ │ │ │ ├── draft-report/ │ │ │ │ │ ├── draft-report.tsx │ │ │ │ │ └── drafted-report-btn.tsx │ │ │ │ ├── knowledge-base-citation/ │ │ │ │ │ └── citation-badge.tsx │ │ │ │ └── tool-calling-results.tsx │ │ │ ├── chat.tsx │ │ │ ├── external-assets/ │ │ │ │ └── assets-modal.tsx │ │ │ ├── input/ │ │ │ │ ├── chat-input-box.tsx │ │ │ │ ├── chat-input-buttons/ │ │ │ │ │ ├── assistants-list-dropup-in-chat-input.tsx │ │ │ │ │ ├── attachments-list-dropup-in-chat-input.tsx │ │ │ │ │ ├── chat-input-buttons.tsx │ │ │ │ │ ├── current-session-assets-dropup.tsx │ │ │ │ │ ├── open-database-in-chat-input-btn.tsx │ │ │ │ │ └── select-roi-on-map-btn.tsx │ │ │ │ ├── chat-input-dropzone.tsx │ │ │ │ ├── map-tools-dropup.tsx │ │ │ │ └── slash-menu-for-map-layers.tsx │ │ │ ├── text-analysis-suggestions/ │ │ │ │ └── text-analysis-suggestions.tsx │ │ │ └── thumbnails-analysis-suggestions/ │ │ │ └── thumbnails-analysis-suggestions.tsx │ │ ├── hooks/ │ │ │ └── use-slash-menu-map-layers-list.ts │ │ ├── stores/ │ │ │ ├── use-attachments-store.ts │ │ │ ├── use-chat-response-sources-store.ts │ │ │ └── use-drafted-report-store.ts │ │ ├── ui/ │ │ │ └── fadeIn-with-delay.tsx │ │ └── utils/ │ │ ├── drag-and-drop-file-analyzer.ts │ │ ├── general-utils.ts │ │ ├── slash-menu-utils.ts │ │ ├── tool-calling-results-validation.ts │ │ ├── use-Textarea-resize.ts │ │ ├── use-drag-and-drop-file-import.ts │ │ └── use-slash-command-menu.ts │ ├── chat-history/ │ │ └── components/ │ │ ├── chat-history-row.tsx │ │ ├── chat-history-table-skeleton.tsx │ │ ├── chat-history-table.tsx │ │ ├── chat-history.tsx │ │ └── indeterminate-checkbox.tsx │ ├── integrations/ │ │ └── components/ │ │ ├── integration-actions.tsx │ │ ├── integration-header.tsx │ │ ├── integration-item.tsx │ │ ├── integration-list.tsx │ │ ├── integration-status.tsx │ │ └── integrations-page.tsx │ ├── knowledge-base/ │ │ ├── actions/ │ │ │ └── document-actions.ts │ │ ├── components/ │ │ │ ├── add-group-modal.tsx │ │ │ ├── documents-table.tsx │ │ │ ├── edit-document-modal.tsx │ │ │ ├── knolwedge-base.tsx │ │ │ ├── knowledge-base-sidebar.tsx │ │ │ └── max-docs-alert-dialog.tsx │ │ ├── lib/ │ │ │ └── generate-embeddings.ts │ │ └── utils/ │ │ └── transform-metadata-to-citation.ts │ ├── maps/ │ │ ├── components/ │ │ │ ├── address-search.tsx │ │ │ ├── attribute-table/ │ │ │ │ ├── attribute-table-controls.tsx │ │ │ │ └── attribute-table.tsx │ │ │ ├── map-badge.tsx │ │ │ ├── map-container.tsx │ │ │ ├── map-custom-controls/ │ │ │ │ ├── map-custom-controls.tsx │ │ │ │ └── map-roi-controls.tsx │ │ │ └── map-panels/ │ │ │ ├── map-chart-panel/ │ │ │ │ └── map-chart-panel.tsx │ │ │ └── map-layers-panel/ │ │ │ ├── color-picker-popover.tsx │ │ │ ├── map-layers-panel.tsx │ │ │ └── map-legend.tsx │ │ ├── hooks/ │ │ │ ├── use-handle-click/ │ │ │ │ ├── use-handle-click.ts │ │ │ │ ├── use-map-controls.ts │ │ │ │ ├── use-query-drawing.ts │ │ │ │ ├── use-remove-query-features.ts │ │ │ │ └── use-roi-drawing.ts │ │ │ ├── use-map/ │ │ │ │ ├── use-add-arcgis-layers.ts │ │ │ │ ├── use-add-attached-layers.ts │ │ │ │ ├── use-add-gee-layers.ts │ │ │ │ ├── use-add-roi-from-session.ts │ │ │ │ ├── use-basemap-toggle.ts │ │ │ │ ├── use-map-initialization.ts │ │ │ │ ├── use-map.ts │ │ │ │ ├── use-update-layer-style.ts │ │ │ │ └── use-zoom-to-geometry.ts │ │ │ └── use-map-cursor.ts │ │ ├── stores/ │ │ │ ├── map-queries-stores/ │ │ │ │ ├── useQueryOutputReadyFromVectorLayerStore.ts │ │ │ │ ├── useQueryRasterFromVectorLayerStore.ts │ │ │ │ └── useQueryReadyStore.ts │ │ │ ├── plots-stores/ │ │ │ │ ├── useChartRequestedTypeStore.ts │ │ │ │ ├── usePlotReadyDataStore.ts │ │ │ │ └── usePlotReadyFromVectorLayerStore.ts │ │ │ ├── use-agol-layers-store.ts │ │ │ ├── use-color-picker-store.ts │ │ │ ├── use-cursor-store.ts │ │ │ ├── use-drawn-feature-on-map-store.ts │ │ │ ├── use-function-store.ts │ │ │ ├── use-gee-ouput-store.ts │ │ │ ├── use-geojson-store.ts │ │ │ ├── use-layer-selection-store.ts │ │ │ ├── use-map-badge-store.ts │ │ │ ├── use-map-display-store.ts │ │ │ ├── use-map-layer-store.ts │ │ │ ├── use-map-legend-store.ts │ │ │ ├── use-map-zoom-request-store.ts │ │ │ ├── use-roi-store.ts │ │ │ └── use-table-store.ts │ │ └── utils/ │ │ ├── add-drawn-layer-to-map.ts │ │ ├── add-gee-layer-to-map.ts │ │ ├── add-geocoded-point-to-map.ts │ │ ├── add-layers-to-map/ │ │ │ └── addGeojsonLayer.ts │ │ ├── add-roi-layer-to-map.ts │ │ ├── authentication-utils/ │ │ │ └── gee-auth.ts │ │ ├── gee-eval-utils.ts │ │ ├── general-checks.ts │ │ ├── geometry-utils.ts │ │ ├── initialize-map.ts │ │ ├── other-utils.ts │ │ ├── setup-map-attributions.ts │ │ └── type-guards.ts │ ├── text-editor/ │ │ ├── components/ │ │ │ ├── dynamic-text-editor.tsx │ │ │ └── text-editor.tsx │ │ └── schema/ │ │ └── text-editor-schema.tsx │ ├── ui/ │ │ ├── modals/ │ │ │ └── file-upload-modal.tsx │ │ └── toast-message.tsx │ └── user-profile/ │ └── components/ │ └── user-profile-modal.tsx ├── hooks/ │ └── docs-hooks/ │ ├── use-document-upload.ts │ └── use-document-viewer.ts ├── lib/ │ ├── auth.ts │ ├── changelog.ts │ ├── database/ │ │ ├── chat/ │ │ │ ├── queries.ts │ │ │ └── tools.ts │ │ └── usage.ts │ ├── fetchers/ │ │ ├── chat.ts │ │ └── services/ │ │ └── esri/ │ │ ├── fetch-layers-list.ts │ │ └── fetch-selected-layer.ts │ ├── geospatial/ │ │ └── gee/ │ │ ├── analysis-functions/ │ │ │ ├── heat-analysis/ │ │ │ │ └── urban-heat-island-analysis.ts │ │ │ ├── lancover-landuse-mapping/ │ │ │ │ ├── google-dynamic-world-landcover-mapping.ts │ │ │ │ ├── landcover-change-mapping.ts │ │ │ │ └── sentinel-landcover-landuse-mapping.ts │ │ │ └── pollution-analysis/ │ │ │ └── air-pollution-analysis.ts │ │ ├── extract-values-from-gee-layer/ │ │ │ ├── extract-values-from-gee-layer.ts │ │ │ └── geospatial-analyses/ │ │ │ ├── extract-values-from-air-pollution-map.ts │ │ │ ├── extract-values-from-google-dynamic-world-map.ts │ │ │ ├── extract-values-from-landcover-change-map.ts │ │ │ ├── extract-values-from-sentinel-landcover-landuse-map.ts │ │ │ └── extract-values-from-urban-heat-island-map.ts │ │ └── load-data/ │ │ └── load-raster-data.ts │ └── utils.ts ├── middleware.ts ├── next.config.ts ├── package.json ├── postcss.config.mjs ├── stores/ │ ├── use-buttons-store.ts │ ├── use-integration-store.ts │ ├── use-loading-store.ts │ ├── use-sidebar-button-stores.ts │ ├── use-toast-message-store.ts │ └── use-user-profile-store.ts ├── tailwind.config.ts ├── tsconfig.json ├── types/ │ └── global.d.ts └── utils/ ├── general/ │ ├── document-utils.ts │ └── general-utils.ts ├── reset-chat-stores.ts ├── service-handlers/ │ └── esri.ts ├── supabase/ │ ├── client.ts │ ├── middleware.ts │ └── server.ts └── validation-utils/ └── validation-utils.ts