Files
gsinghpal 41d0908ade changes
2026-04-24 21:04:38 -04:00

2623 lines
105 KiB
JSON

{
"directed": false,
"multigraph": false,
"graph": {},
"nodes": [
{
"label": "__init__.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/__init__.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_init_py",
"community": 11,
"norm_label": "__init__.py"
},
{
"label": "__manifest__.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/__manifest__.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_manifest_py",
"community": 14,
"norm_label": "__manifest__.py"
},
{
"label": "ai_service.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_service_py",
"community": 1,
"norm_label": "ai_service.py"
},
{
"label": "FusionClockAIService",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L21",
"id": "ai_service_fusionclockaiservice",
"community": 1,
"norm_label": "fusionclockaiservice"
},
{
"label": "._get_client()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L29",
"id": "ai_service_fusionclockaiservice_get_client",
"community": 1,
"norm_label": "._get_client()"
},
{
"label": "._get_model()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L38",
"id": "ai_service_fusionclockaiservice_get_model",
"community": 1,
"norm_label": "._get_model()"
},
{
"label": "._get_max_tokens()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L42",
"id": "ai_service_fusionclockaiservice_get_max_tokens",
"community": 1,
"norm_label": "._get_max_tokens()"
},
{
"label": "._check_budget()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L50",
"id": "ai_service_fusionclockaiservice_check_budget",
"community": 1,
"norm_label": "._check_budget()"
},
{
"label": "._get_cache_key()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L74",
"id": "ai_service_fusionclockaiservice_get_cache_key",
"community": 1,
"norm_label": "._get_cache_key()"
},
{
"label": "._check_cache()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L77",
"id": "ai_service_fusionclockaiservice_check_cache",
"community": 1,
"norm_label": "._check_cache()"
},
{
"label": "._store_cache()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L87",
"id": "ai_service_fusionclockaiservice_store_cache",
"community": 1,
"norm_label": "._store_cache()"
},
{
"label": "._log_usage()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L109",
"id": "ai_service_fusionclockaiservice_log_usage",
"community": 1,
"norm_label": "._log_usage()"
},
{
"label": "._get_system_prompt()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L140",
"id": "ai_service_fusionclockaiservice_get_system_prompt",
"community": 3,
"norm_label": "._get_system_prompt()"
},
{
"label": ".chat_completion()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L153",
"id": "ai_service_fusionclockaiservice_chat_completion",
"community": 1,
"norm_label": ".chat_completion()"
},
{
"label": "._build_employee_context()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L186",
"id": "ai_service_fusionclockaiservice_build_employee_context",
"community": 3,
"norm_label": "._build_employee_context()"
},
{
"label": "._build_team_context()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L252",
"id": "ai_service_fusionclockaiservice_build_team_context",
"community": 1,
"norm_label": "._build_team_context()"
},
{
"label": "._build_payroll_context()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L302",
"id": "ai_service_fusionclockaiservice_build_payroll_context",
"community": 4,
"norm_label": "._build_payroll_context()"
},
{
"label": "clock_correction_ai.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_clock_correction_ai_py",
"community": 3,
"norm_label": "clock_correction_ai.py"
},
{
"label": "ClockCorrectionAI",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L12",
"id": "clock_correction_ai_clockcorrectionai",
"community": 3,
"norm_label": "clockcorrectionai"
},
{
"label": ".action_get_ai_advice()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L17",
"id": "clock_correction_ai_clockcorrectionai_action_get_ai_advice",
"community": 3,
"norm_label": ".action_get_ai_advice()"
},
{
"label": "hr_employee_ai.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_hr_employee_ai_py",
"community": 3,
"norm_label": "hr_employee_ai.py"
},
{
"label": "HrEmployeeAI",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L12",
"id": "hr_employee_ai_hremployeeai",
"community": 3,
"norm_label": "hremployeeai"
},
{
"label": ".action_generate_ai_summary()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L19",
"id": "hr_employee_ai_hremployeeai_action_generate_ai_summary",
"community": 3,
"norm_label": ".action_generate_ai_summary()"
},
{
"label": ".action_generate_coach_tip()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L41",
"id": "hr_employee_ai_hremployeeai_action_generate_coach_tip",
"community": 3,
"norm_label": ".action_generate_coach_tip()"
},
{
"label": "ai_usage.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_usage.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_usage_py",
"community": 8,
"norm_label": "ai_usage.py"
},
{
"label": "FusionClockAIUsage",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_usage.py",
"source_location": "L8",
"id": "ai_usage_fusionclockaiusage",
"community": 8,
"norm_label": "fusionclockaiusage"
},
{
"label": "._compute_total()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_usage.py",
"source_location": "L23",
"id": "ai_usage_fusionclockaiusage_compute_total",
"community": 8,
"norm_label": "._compute_total()"
},
{
"label": "ai_prompt.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_prompt.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_prompt_py",
"community": 9,
"norm_label": "ai_prompt.py"
},
{
"label": "FusionClockAIPrompt",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_prompt.py",
"source_location": "L8",
"id": "ai_prompt_fusionclockaiprompt",
"community": 9,
"norm_label": "fusionclockaiprompt"
},
{
"label": "hr_attendance_ai.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_attendance_ai.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_hr_attendance_ai_py",
"community": 7,
"norm_label": "hr_attendance_ai.py"
},
{
"label": "HrAttendanceAI",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_attendance_ai.py",
"source_location": "L11",
"id": "hr_attendance_ai_hrattendanceai",
"community": 7,
"norm_label": "hrattendanceai"
},
{
"label": "._ai_explain_incident()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_attendance_ai.py",
"source_location": "L14",
"id": "hr_attendance_ai_hrattendanceai_ai_explain_incident",
"community": 7,
"norm_label": "._ai_explain_incident()"
},
{
"label": "__init__.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/__init__.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_init_py",
"community": 12,
"norm_label": "__init__.py"
},
{
"label": "ai_conversation.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_conversation.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_conversation_py",
"community": 5,
"norm_label": "ai_conversation.py"
},
{
"label": "FusionClockAIConversation",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_conversation.py",
"source_location": "L8",
"id": "ai_conversation_fusionclockaiconversation",
"community": 5,
"norm_label": "fusionclockaiconversation"
},
{
"label": "._compute_title()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_conversation.py",
"source_location": "L23",
"id": "ai_conversation_fusionclockaiconversation_compute_title",
"community": 5,
"norm_label": "._compute_title()"
},
{
"label": "FusionClockAIMessage",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_conversation.py",
"source_location": "L33",
"id": "ai_conversation_fusionclockaimessage",
"community": 5,
"norm_label": "fusionclockaimessage"
},
{
"label": "clock_report_ai.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_clock_report_ai_py",
"community": 4,
"norm_label": "clock_report_ai.py"
},
{
"label": "ClockReportAI",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L11",
"id": "clock_report_ai_clockreportai",
"community": 4,
"norm_label": "clockreportai"
},
{
"label": ".action_generate_ai_narrative()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L16",
"id": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"community": 4,
"norm_label": ".action_generate_ai_narrative()"
},
{
"label": ".action_generate_report()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L37",
"id": "clock_report_ai_clockreportai_action_generate_report",
"community": 4,
"norm_label": ".action_generate_report()"
},
{
"label": "res_config_settings.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/res_config_settings.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_res_config_settings_py",
"community": 10,
"norm_label": "res_config_settings.py"
},
{
"label": "ResConfigSettings",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/res_config_settings.py",
"source_location": "L8",
"id": "res_config_settings_resconfigsettings",
"community": 10,
"norm_label": "resconfigsettings"
},
{
"label": "ai_cache.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_cache.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_cache_py",
"community": 6,
"norm_label": "ai_cache.py"
},
{
"label": "FusionClockAICache",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_cache.py",
"source_location": "L9",
"id": "ai_cache_fusionclockaicache",
"community": 6,
"norm_label": "fusionclockaicache"
},
{
"label": "._gc_expired_cache()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_cache.py",
"source_location": "L19",
"id": "ai_cache_fusionclockaicache_gc_expired_cache",
"community": 6,
"norm_label": "._gc_expired_cache()"
},
{
"label": "Cron: delete cache entries older than 24 hours.",
"file_type": "rationale",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_cache.py",
"source_location": "L20",
"id": "ai_cache_rationale_20",
"community": 6,
"norm_label": "cron: delete cache entries older than 24 hours."
},
{
"label": "ai_chat_portal.js",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_static_src_js_ai_chat_portal_js",
"community": 0,
"norm_label": "ai_chat_portal.js"
},
{
"label": "FusionClockAIPortalChat",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L27",
"id": "ai_chat_portal_fusionclockaiportalchat",
"community": 0,
"norm_label": "fusionclockaiportalchat"
},
{
"label": ".setup()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L30",
"id": "ai_chat_portal_fusionclockaiportalchat_setup",
"community": 0,
"norm_label": ".setup()"
},
{
"label": ".destroy()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L41",
"id": "ai_chat_portal_fusionclockaiportalchat_destroy",
"community": 0,
"norm_label": ".destroy()"
},
{
"label": "._buildDOM()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L51",
"id": "ai_chat_portal_fusionclockaiportalchat_builddom",
"community": 0,
"norm_label": "._builddom()"
},
{
"label": "._panelHTML()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L73",
"id": "ai_chat_portal_fusionclockaiportalchat_panelhtml",
"community": 0,
"norm_label": "._panelhtml()"
},
{
"label": "._createElement()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L116",
"id": "ai_chat_portal_fusionclockaiportalchat_createelement",
"community": 0,
"norm_label": "._createelement()"
},
{
"label": "._bindEvents()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L127",
"id": "ai_chat_portal_fusionclockaiportalchat_bindevents",
"community": 0,
"norm_label": "._bindevents()"
},
{
"label": "._togglePanel()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L168",
"id": "ai_chat_portal_fusionclockaiportalchat_togglepanel",
"community": 0,
"norm_label": "._togglepanel()"
},
{
"label": "._openPanel()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L172",
"id": "ai_chat_portal_fusionclockaiportalchat_openpanel",
"community": 0,
"norm_label": "._openpanel()"
},
{
"label": "._closePanel()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L183",
"id": "ai_chat_portal_fusionclockaiportalchat_closepanel",
"community": 0,
"norm_label": "._closepanel()"
},
{
"label": "._appendMessage()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L197",
"id": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"community": 0,
"norm_label": "._appendmessage()"
},
{
"label": "._appendTyping()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L210",
"id": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"community": 0,
"norm_label": "._appendtyping()"
},
{
"label": "._removeTyping()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L219",
"id": "ai_chat_portal_fusionclockaiportalchat_removetyping",
"community": 0,
"norm_label": "._removetyping()"
},
{
"label": "._scrollToBottom()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L223",
"id": "ai_chat_portal_fusionclockaiportalchat_scrolltobottom",
"community": 0,
"norm_label": "._scrolltobottom()"
},
{
"label": "._sendMessage()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L233",
"id": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"community": 0,
"norm_label": "._sendmessage()"
},
{
"label": "._onQuickAction()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L269",
"id": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"community": 0,
"norm_label": "._onquickaction()"
},
{
"label": "._openPolish()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L309",
"id": "ai_chat_portal_fusionclockaiportalchat_openpolish",
"community": 0,
"norm_label": "._openpolish()"
},
{
"label": "._closePolish()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L315",
"id": "ai_chat_portal_fusionclockaiportalchat_closepolish",
"community": 0,
"norm_label": "._closepolish()"
},
{
"label": "._sendPolish()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L319",
"id": "ai_chat_portal_fusionclockaiportalchat_sendpolish",
"community": 0,
"norm_label": "._sendpolish()"
},
{
"label": "ai_chat_backend.js",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_static_src_js_ai_chat_backend_js",
"community": 2,
"norm_label": "ai_chat_backend.js"
},
{
"label": "FusionClockAIChat",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L28",
"id": "ai_chat_backend_fusionclockaichat",
"community": 2,
"norm_label": "fusionclockaichat"
},
{
"label": ".setup()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L33",
"id": "ai_chat_backend_fusionclockaichat_setup",
"community": 2,
"norm_label": ".setup()"
},
{
"label": ".suggestions()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L49",
"id": "ai_chat_backend_fusionclockaichat_suggestions",
"community": 2,
"norm_label": ".suggestions()"
},
{
"label": ".tools()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L53",
"id": "ai_chat_backend_fusionclockaichat_tools",
"community": 2,
"norm_label": ".tools()"
},
{
"label": ".hasMessages()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L57",
"id": "ai_chat_backend_fusionclockaichat_hasmessages",
"community": 2,
"norm_label": ".hasmessages()"
},
{
"label": ".canSend()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L61",
"id": "ai_chat_backend_fusionclockaichat_cansend",
"community": 2,
"norm_label": ".cansend()"
},
{
"label": ".switchTab()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L65",
"id": "ai_chat_backend_fusionclockaichat_switchtab",
"community": 2,
"norm_label": ".switchtab()"
},
{
"label": ".newConversation()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L70",
"id": "ai_chat_backend_fusionclockaichat_newconversation",
"community": 2,
"norm_label": ".newconversation()"
},
{
"label": ".onInput()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L76",
"id": "ai_chat_backend_fusionclockaichat_oninput",
"community": 2,
"norm_label": ".oninput()"
},
{
"label": ".onKeydown()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L80",
"id": "ai_chat_backend_fusionclockaichat_onkeydown",
"community": 2,
"norm_label": ".onkeydown()"
},
{
"label": ".onSuggestionClick()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L87",
"id": "ai_chat_backend_fusionclockaichat_onsuggestionclick",
"community": 2,
"norm_label": ".onsuggestionclick()"
},
{
"label": "._scrollToBottom()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L92",
"id": "ai_chat_backend_fusionclockaichat_scrolltobottom",
"community": 2,
"norm_label": "._scrolltobottom()"
},
{
"label": ".sendMessage()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L101",
"id": "ai_chat_backend_fusionclockaichat_sendmessage",
"community": 2,
"norm_label": ".sendmessage()"
},
{
"label": ".runTool()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L132",
"id": "ai_chat_backend_fusionclockaichat_runtool",
"community": 2,
"norm_label": ".runtool()"
},
{
"label": "ai_api.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"community": 1,
"norm_label": "ai_api.py"
},
{
"label": "FusionClockAIAPI",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L15",
"id": "ai_api_fusionclockaiapi",
"community": 1,
"norm_label": "fusionclockaiapi"
},
{
"label": "._get_employee()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L17",
"id": "ai_api_fusionclockaiapi_get_employee",
"community": 1,
"norm_label": "._get_employee()"
},
{
"label": "manager_chat()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L23",
"id": "ai_api_manager_chat",
"community": 1,
"norm_label": "manager_chat()"
},
{
"label": "run_analysis()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L93",
"id": "ai_api_run_analysis",
"community": 1,
"norm_label": "run_analysis()"
},
{
"label": "._build_geofence_context()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L147",
"id": "ai_api_fusionclockaiapi_build_geofence_context",
"community": 1,
"norm_label": "._build_geofence_context()"
},
{
"label": "smart_config()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L180",
"id": "ai_api_smart_config",
"community": 1,
"norm_label": "smart_config()"
},
{
"label": "apply_config()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L202",
"id": "ai_api_apply_config",
"community": 1,
"norm_label": "apply_config()"
},
{
"label": "__init__.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/__init__.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_init_py",
"community": 13,
"norm_label": "__init__.py"
},
{
"label": "portal_ai.py",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L1",
"id": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"community": 3,
"norm_label": "portal_ai.py"
},
{
"label": "FusionClockPortalAI",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L13",
"id": "portal_ai_fusionclockportalai",
"community": 3,
"norm_label": "fusionclockportalai"
},
{
"label": "._get_employee()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L15",
"id": "portal_ai_fusionclockportalai_get_employee",
"community": 3,
"norm_label": "._get_employee()"
},
{
"label": "employee_chat()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L21",
"id": "portal_ai_employee_chat",
"community": 3,
"norm_label": "employee_chat()"
},
{
"label": "polish_reason()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L83",
"id": "portal_ai_polish_reason",
"community": 3,
"norm_label": "polish_reason()"
},
{
"label": "my_coach_tip()",
"file_type": "code",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L99",
"id": "portal_ai_my_coach_tip",
"community": 3,
"norm_label": "my_coach_tip()"
}
],
"links": [
{
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/__init__.py",
"source_location": "L6",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_init_py",
"_tgt": "users_gurpreet_github_odoo_modules_fusion_clock_ai_init_py",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_init_py",
"target": "users_gurpreet_github_odoo_modules_fusion_clock_ai_init_py",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L21",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_service_py",
"_tgt": "ai_service_fusionclockaiservice",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_service_py",
"target": "ai_service_fusionclockaiservice",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L29",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_get_client",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_get_client",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L38",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_get_model",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_get_model",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L42",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_get_max_tokens",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_get_max_tokens",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L50",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_check_budget",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_check_budget",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L74",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_get_cache_key",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_get_cache_key",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L77",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_check_cache",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_check_cache",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L87",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_store_cache",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_store_cache",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L109",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_log_usage",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_log_usage",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L140",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_get_system_prompt",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L153",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L186",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_build_employee_context",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_build_employee_context",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L252",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_build_team_context",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_build_team_context",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L302",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice",
"_tgt": "ai_service_fusionclockaiservice_build_payroll_context",
"source": "ai_service_fusionclockaiservice",
"target": "ai_service_fusionclockaiservice_build_payroll_context",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L159",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice_chat_completion",
"_tgt": "ai_service_fusionclockaiservice_get_client",
"source": "ai_service_fusionclockaiservice_get_client",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L160",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice_chat_completion",
"_tgt": "ai_service_fusionclockaiservice_get_model",
"source": "ai_service_fusionclockaiservice_get_model",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L161",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice_chat_completion",
"_tgt": "ai_service_fusionclockaiservice_get_max_tokens",
"source": "ai_service_fusionclockaiservice_get_max_tokens",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L158",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice_chat_completion",
"_tgt": "ai_service_fusionclockaiservice_check_budget",
"source": "ai_service_fusionclockaiservice_check_budget",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L129",
"weight": 1.0,
"_src": "ai_api_run_analysis",
"_tgt": "ai_service_fusionclockaiservice_get_cache_key",
"source": "ai_service_fusionclockaiservice_get_cache_key",
"target": "ai_api_run_analysis"
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L155",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice_chat_completion",
"_tgt": "ai_service_fusionclockaiservice_check_cache",
"source": "ai_service_fusionclockaiservice_check_cache",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L178",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice_chat_completion",
"_tgt": "ai_service_fusionclockaiservice_store_cache",
"source": "ai_service_fusionclockaiservice_store_cache",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_service.py",
"source_location": "L175",
"weight": 1.0,
"_src": "ai_service_fusionclockaiservice_chat_completion",
"_tgt": "ai_service_fusionclockaiservice_log_usage",
"source": "ai_service_fusionclockaiservice_log_usage",
"target": "ai_service_fusionclockaiservice_chat_completion",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L39",
"weight": 1.0,
"_src": "clock_correction_ai_clockcorrectionai_action_get_ai_advice",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "clock_correction_ai_clockcorrectionai_action_get_ai_advice"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L25",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai_action_generate_ai_summary",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "hr_employee_ai_hremployeeai_action_generate_ai_summary"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L47",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai_action_generate_coach_tip",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "hr_employee_ai_hremployeeai_action_generate_coach_tip"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_attendance_ai.py",
"source_location": "L20",
"weight": 1.0,
"_src": "hr_attendance_ai_hrattendanceai_ai_explain_incident",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "hr_attendance_ai_hrattendanceai_ai_explain_incident"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L24",
"weight": 1.0,
"_src": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "clock_report_ai_clockreportai_action_generate_ai_narrative"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L69",
"weight": 1.0,
"_src": "ai_api_manager_chat",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "ai_api_manager_chat"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L127",
"weight": 1.0,
"_src": "ai_api_run_analysis",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "ai_api_run_analysis"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L186",
"weight": 1.0,
"_src": "ai_api_smart_config",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "ai_api_smart_config"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L59",
"weight": 1.0,
"_src": "portal_ai_employee_chat",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "portal_ai_employee_chat"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L85",
"weight": 1.0,
"_src": "portal_ai_polish_reason",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "portal_ai_polish_reason"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L110",
"weight": 1.0,
"_src": "portal_ai_my_coach_tip",
"_tgt": "ai_service_fusionclockaiservice_get_system_prompt",
"source": "ai_service_fusionclockaiservice_get_system_prompt",
"target": "portal_ai_my_coach_tip"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L41",
"weight": 1.0,
"_src": "clock_correction_ai_clockcorrectionai_action_get_ai_advice",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "clock_correction_ai_clockcorrectionai_action_get_ai_advice"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L27",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai_action_generate_ai_summary",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "hr_employee_ai_hremployeeai_action_generate_ai_summary"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L49",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai_action_generate_coach_tip",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "hr_employee_ai_hremployeeai_action_generate_coach_tip"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_attendance_ai.py",
"source_location": "L36",
"weight": 1.0,
"_src": "hr_attendance_ai_hrattendanceai_ai_explain_incident",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "hr_attendance_ai_hrattendanceai_ai_explain_incident"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L26",
"weight": 1.0,
"_src": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "clock_report_ai_clockreportai_action_generate_ai_narrative"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L77",
"weight": 1.0,
"_src": "ai_api_manager_chat",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "ai_api_manager_chat"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L134",
"weight": 1.0,
"_src": "ai_api_run_analysis",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "ai_api_run_analysis"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L189",
"weight": 1.0,
"_src": "ai_api_smart_config",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "ai_api_smart_config"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L67",
"weight": 1.0,
"_src": "portal_ai_employee_chat",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "portal_ai_employee_chat"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L87",
"weight": 1.0,
"_src": "portal_ai_polish_reason",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "portal_ai_polish_reason"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L112",
"weight": 1.0,
"_src": "portal_ai_my_coach_tip",
"_tgt": "ai_service_fusionclockaiservice_chat_completion",
"source": "ai_service_fusionclockaiservice_chat_completion",
"target": "portal_ai_my_coach_tip"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L25",
"weight": 1.0,
"_src": "clock_correction_ai_clockcorrectionai_action_get_ai_advice",
"_tgt": "ai_service_fusionclockaiservice_build_employee_context",
"source": "ai_service_fusionclockaiservice_build_employee_context",
"target": "clock_correction_ai_clockcorrectionai_action_get_ai_advice"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L22",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai_action_generate_ai_summary",
"_tgt": "ai_service_fusionclockaiservice_build_employee_context",
"source": "ai_service_fusionclockaiservice_build_employee_context",
"target": "hr_employee_ai_hremployeeai_action_generate_ai_summary"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L44",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai_action_generate_coach_tip",
"_tgt": "ai_service_fusionclockaiservice_build_employee_context",
"source": "ai_service_fusionclockaiservice_build_employee_context",
"target": "hr_employee_ai_hremployeeai_action_generate_coach_tip"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L32",
"weight": 1.0,
"_src": "portal_ai_employee_chat",
"_tgt": "ai_service_fusionclockaiservice_build_employee_context",
"source": "ai_service_fusionclockaiservice_build_employee_context",
"target": "portal_ai_employee_chat"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L105",
"weight": 1.0,
"_src": "portal_ai_my_coach_tip",
"_tgt": "ai_service_fusionclockaiservice_build_employee_context",
"source": "ai_service_fusionclockaiservice_build_employee_context",
"target": "portal_ai_my_coach_tip"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L46",
"weight": 1.0,
"_src": "ai_api_manager_chat",
"_tgt": "ai_service_fusionclockaiservice_build_team_context",
"source": "ai_service_fusionclockaiservice_build_team_context",
"target": "ai_api_manager_chat"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L122",
"weight": 1.0,
"_src": "ai_api_run_analysis",
"_tgt": "ai_service_fusionclockaiservice_build_team_context",
"source": "ai_service_fusionclockaiservice_build_team_context",
"target": "ai_api_run_analysis"
},
{
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L23",
"weight": 1.0,
"_src": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"_tgt": "ai_service_fusionclockaiservice_build_payroll_context",
"source": "ai_service_fusionclockaiservice_build_payroll_context",
"target": "clock_report_ai_clockreportai_action_generate_ai_narrative"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L12",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_clock_correction_ai_py",
"_tgt": "clock_correction_ai_clockcorrectionai",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_clock_correction_ai_py",
"target": "clock_correction_ai_clockcorrectionai",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_correction_ai.py",
"source_location": "L17",
"weight": 1.0,
"_src": "clock_correction_ai_clockcorrectionai",
"_tgt": "clock_correction_ai_clockcorrectionai_action_get_ai_advice",
"source": "clock_correction_ai_clockcorrectionai",
"target": "clock_correction_ai_clockcorrectionai_action_get_ai_advice",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L12",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_hr_employee_ai_py",
"_tgt": "hr_employee_ai_hremployeeai",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_hr_employee_ai_py",
"target": "hr_employee_ai_hremployeeai",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L19",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai",
"_tgt": "hr_employee_ai_hremployeeai_action_generate_ai_summary",
"source": "hr_employee_ai_hremployeeai",
"target": "hr_employee_ai_hremployeeai_action_generate_ai_summary",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_employee_ai.py",
"source_location": "L41",
"weight": 1.0,
"_src": "hr_employee_ai_hremployeeai",
"_tgt": "hr_employee_ai_hremployeeai_action_generate_coach_tip",
"source": "hr_employee_ai_hremployeeai",
"target": "hr_employee_ai_hremployeeai_action_generate_coach_tip",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_usage.py",
"source_location": "L8",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_usage_py",
"_tgt": "ai_usage_fusionclockaiusage",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_usage_py",
"target": "ai_usage_fusionclockaiusage",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_usage.py",
"source_location": "L23",
"weight": 1.0,
"_src": "ai_usage_fusionclockaiusage",
"_tgt": "ai_usage_fusionclockaiusage_compute_total",
"source": "ai_usage_fusionclockaiusage",
"target": "ai_usage_fusionclockaiusage_compute_total",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_prompt.py",
"source_location": "L8",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_prompt_py",
"_tgt": "ai_prompt_fusionclockaiprompt",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_prompt_py",
"target": "ai_prompt_fusionclockaiprompt",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_attendance_ai.py",
"source_location": "L11",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_hr_attendance_ai_py",
"_tgt": "hr_attendance_ai_hrattendanceai",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_hr_attendance_ai_py",
"target": "hr_attendance_ai_hrattendanceai",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/hr_attendance_ai.py",
"source_location": "L14",
"weight": 1.0,
"_src": "hr_attendance_ai_hrattendanceai",
"_tgt": "hr_attendance_ai_hrattendanceai_ai_explain_incident",
"source": "hr_attendance_ai_hrattendanceai",
"target": "hr_attendance_ai_hrattendanceai_ai_explain_incident",
"confidence_score": 1.0
},
{
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/__init__.py",
"source_location": "L14",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_init_py",
"_tgt": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_init_py",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_init_py",
"target": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_init_py",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_conversation.py",
"source_location": "L8",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_conversation_py",
"_tgt": "ai_conversation_fusionclockaiconversation",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_conversation_py",
"target": "ai_conversation_fusionclockaiconversation",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_conversation.py",
"source_location": "L33",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_conversation_py",
"_tgt": "ai_conversation_fusionclockaimessage",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_conversation_py",
"target": "ai_conversation_fusionclockaimessage",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_conversation.py",
"source_location": "L23",
"weight": 1.0,
"_src": "ai_conversation_fusionclockaiconversation",
"_tgt": "ai_conversation_fusionclockaiconversation_compute_title",
"source": "ai_conversation_fusionclockaiconversation",
"target": "ai_conversation_fusionclockaiconversation_compute_title",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L11",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_clock_report_ai_py",
"_tgt": "clock_report_ai_clockreportai",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_clock_report_ai_py",
"target": "clock_report_ai_clockreportai",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L16",
"weight": 1.0,
"_src": "clock_report_ai_clockreportai",
"_tgt": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"source": "clock_report_ai_clockreportai",
"target": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L37",
"weight": 1.0,
"_src": "clock_report_ai_clockreportai",
"_tgt": "clock_report_ai_clockreportai_action_generate_report",
"source": "clock_report_ai_clockreportai",
"target": "clock_report_ai_clockreportai_action_generate_report",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/clock_report_ai.py",
"source_location": "L39",
"weight": 1.0,
"_src": "clock_report_ai_clockreportai_action_generate_report",
"_tgt": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"source": "clock_report_ai_clockreportai_action_generate_ai_narrative",
"target": "clock_report_ai_clockreportai_action_generate_report",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/res_config_settings.py",
"source_location": "L8",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_res_config_settings_py",
"_tgt": "res_config_settings_resconfigsettings",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_res_config_settings_py",
"target": "res_config_settings_resconfigsettings",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_cache.py",
"source_location": "L9",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_cache_py",
"_tgt": "ai_cache_fusionclockaicache",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_models_ai_cache_py",
"target": "ai_cache_fusionclockaicache",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_cache.py",
"source_location": "L19",
"weight": 1.0,
"_src": "ai_cache_fusionclockaicache",
"_tgt": "ai_cache_fusionclockaicache_gc_expired_cache",
"source": "ai_cache_fusionclockaicache",
"target": "ai_cache_fusionclockaicache_gc_expired_cache",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/models/ai_cache.py",
"source_location": "L20",
"weight": 1.0,
"_src": "ai_cache_rationale_20",
"_tgt": "ai_cache_fusionclockaicache_gc_expired_cache",
"source": "ai_cache_fusionclockaicache_gc_expired_cache",
"target": "ai_cache_rationale_20",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L27",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_static_src_js_ai_chat_portal_js",
"_tgt": "ai_chat_portal_fusionclockaiportalchat",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_static_src_js_ai_chat_portal_js",
"target": "ai_chat_portal_fusionclockaiportalchat",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L30",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_setup",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_setup",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L41",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_destroy",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_destroy",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L51",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_builddom",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_builddom",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L73",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_panelhtml",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_panelhtml",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L116",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_createelement",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_createelement",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L127",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_bindevents",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_bindevents",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L168",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_togglepanel",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_togglepanel",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L172",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_openpanel",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_openpanel",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L183",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_closepanel",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_closepanel",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L197",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L210",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L219",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_removetyping",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_removetyping",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L223",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_scrolltobottom",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_scrolltobottom",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L233",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L269",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L309",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_openpolish",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_openpolish",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L315",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_closepolish",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_closepolish",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L319",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_sendpolish",
"source": "ai_chat_portal_fusionclockaiportalchat",
"target": "ai_chat_portal_fusionclockaiportalchat_sendpolish",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L37",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_setup",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_builddom",
"source": "ai_chat_portal_fusionclockaiportalchat_setup",
"target": "ai_chat_portal_fusionclockaiportalchat_builddom",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L38",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_setup",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_bindevents",
"source": "ai_chat_portal_fusionclockaiportalchat_setup",
"target": "ai_chat_portal_fusionclockaiportalchat_bindevents",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L54",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_builddom",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_createelement",
"source": "ai_chat_portal_fusionclockaiportalchat_builddom",
"target": "ai_chat_portal_fusionclockaiportalchat_createelement",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L59",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_builddom",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_panelhtml",
"source": "ai_chat_portal_fusionclockaiportalchat_builddom",
"target": "ai_chat_portal_fusionclockaiportalchat_panelhtml",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L169",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_togglepanel",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_closepanel",
"source": "ai_chat_portal_fusionclockaiportalchat_togglepanel",
"target": "ai_chat_portal_fusionclockaiportalchat_closepanel",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L169",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_togglepanel",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_openpanel",
"source": "ai_chat_portal_fusionclockaiportalchat_togglepanel",
"target": "ai_chat_portal_fusionclockaiportalchat_openpanel",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L207",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_scrolltobottom",
"source": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"target": "ai_chat_portal_fusionclockaiportalchat_scrolltobottom",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L237",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"source": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"target": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L279",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"source": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"target": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L333",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_sendpolish",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"source": "ai_chat_portal_fusionclockaiportalchat_appendmessage",
"target": "ai_chat_portal_fusionclockaiportalchat_sendpolish",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L215",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_scrolltobottom",
"source": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"target": "ai_chat_portal_fusionclockaiportalchat_scrolltobottom",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L242",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"source": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"target": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L281",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"source": "ai_chat_portal_fusionclockaiportalchat_appendtyping",
"target": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L249",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_removetyping",
"source": "ai_chat_portal_fusionclockaiportalchat_removetyping",
"target": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L285",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_removetyping",
"source": "ai_chat_portal_fusionclockaiportalchat_removetyping",
"target": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L274",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"source": "ai_chat_portal_fusionclockaiportalchat_sendmessage",
"target": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L301",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_openpolish",
"source": "ai_chat_portal_fusionclockaiportalchat_onquickaction",
"target": "ai_chat_portal_fusionclockaiportalchat_openpolish",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_portal.js",
"source_location": "L332",
"weight": 1.0,
"_src": "ai_chat_portal_fusionclockaiportalchat_sendpolish",
"_tgt": "ai_chat_portal_fusionclockaiportalchat_closepolish",
"source": "ai_chat_portal_fusionclockaiportalchat_closepolish",
"target": "ai_chat_portal_fusionclockaiportalchat_sendpolish",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L28",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_static_src_js_ai_chat_backend_js",
"_tgt": "ai_chat_backend_fusionclockaichat",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_static_src_js_ai_chat_backend_js",
"target": "ai_chat_backend_fusionclockaichat",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L33",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_setup",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_setup",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L49",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_suggestions",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_suggestions",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L53",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_tools",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_tools",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L57",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_hasmessages",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_hasmessages",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L61",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_cansend",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_cansend",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L65",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_switchtab",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_switchtab",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L70",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_newconversation",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_newconversation",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L76",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_oninput",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_oninput",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L80",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_onkeydown",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_onkeydown",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L87",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_onsuggestionclick",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_onsuggestionclick",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L92",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_scrolltobottom",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_scrolltobottom",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L101",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_sendmessage",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L132",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat",
"_tgt": "ai_chat_backend_fusionclockaichat_runtool",
"source": "ai_chat_backend_fusionclockaichat",
"target": "ai_chat_backend_fusionclockaichat_runtool",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L83",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat_onkeydown",
"_tgt": "ai_chat_backend_fusionclockaichat_sendmessage",
"source": "ai_chat_backend_fusionclockaichat_onkeydown",
"target": "ai_chat_backend_fusionclockaichat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L89",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat_onsuggestionclick",
"_tgt": "ai_chat_backend_fusionclockaichat_sendmessage",
"source": "ai_chat_backend_fusionclockaichat_onsuggestionclick",
"target": "ai_chat_backend_fusionclockaichat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/static/src/js/ai_chat_backend.js",
"source_location": "L108",
"weight": 1.0,
"_src": "ai_chat_backend_fusionclockaichat_sendmessage",
"_tgt": "ai_chat_backend_fusionclockaichat_scrolltobottom",
"source": "ai_chat_backend_fusionclockaichat_scrolltobottom",
"target": "ai_chat_backend_fusionclockaichat_sendmessage",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L15",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"_tgt": "ai_api_fusionclockaiapi",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"target": "ai_api_fusionclockaiapi",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L23",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"_tgt": "ai_api_manager_chat",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"target": "ai_api_manager_chat",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L93",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"_tgt": "ai_api_run_analysis",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"target": "ai_api_run_analysis",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L180",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"_tgt": "ai_api_smart_config",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"target": "ai_api_smart_config",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L202",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"_tgt": "ai_api_apply_config",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_ai_api_py",
"target": "ai_api_apply_config",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L17",
"weight": 1.0,
"_src": "ai_api_fusionclockaiapi",
"_tgt": "ai_api_fusionclockaiapi_get_employee",
"source": "ai_api_fusionclockaiapi",
"target": "ai_api_fusionclockaiapi_get_employee",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L147",
"weight": 1.0,
"_src": "ai_api_fusionclockaiapi",
"_tgt": "ai_api_fusionclockaiapi_build_geofence_context",
"source": "ai_api_fusionclockaiapi",
"target": "ai_api_fusionclockaiapi_build_geofence_context",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/ai_api.py",
"source_location": "L125",
"weight": 1.0,
"_src": "ai_api_run_analysis",
"_tgt": "ai_api_fusionclockaiapi_build_geofence_context",
"source": "ai_api_run_analysis",
"target": "ai_api_fusionclockaiapi_build_geofence_context",
"confidence_score": 1.0
},
{
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/__init__.py",
"source_location": "L6",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_init_py",
"_tgt": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_init_py",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_init_py",
"target": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_init_py",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L13",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"_tgt": "portal_ai_fusionclockportalai",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"target": "portal_ai_fusionclockportalai",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L21",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"_tgt": "portal_ai_employee_chat",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"target": "portal_ai_employee_chat",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L83",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"_tgt": "portal_ai_polish_reason",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"target": "portal_ai_polish_reason",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L99",
"weight": 1.0,
"_src": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"_tgt": "portal_ai_my_coach_tip",
"source": "users_gurpreet_github_odoo_modules_fusion_clock_ai_controllers_portal_ai_py",
"target": "portal_ai_my_coach_tip",
"confidence_score": 1.0
},
{
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L15",
"weight": 1.0,
"_src": "portal_ai_fusionclockportalai",
"_tgt": "portal_ai_fusionclockportalai_get_employee",
"source": "portal_ai_fusionclockportalai",
"target": "portal_ai_fusionclockportalai_get_employee",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L26",
"weight": 1.0,
"_src": "portal_ai_employee_chat",
"_tgt": "portal_ai_fusionclockportalai_get_employee",
"source": "portal_ai_fusionclockportalai_get_employee",
"target": "portal_ai_employee_chat",
"confidence_score": 1.0
},
{
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_clock_ai/controllers/portal_ai.py",
"source_location": "L100",
"weight": 1.0,
"_src": "portal_ai_my_coach_tip",
"_tgt": "portal_ai_fusionclockportalai_get_employee",
"source": "portal_ai_fusionclockportalai_get_employee",
"target": "portal_ai_my_coach_tip",
"confidence_score": 1.0
}
],
"hyperedges": []
}