infiagent 3.2.0__tar.gz → 3.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {infiagent-3.2.0/infiagent.egg-info → infiagent-3.2.2}/PKG-INFO +3 -3
- {infiagent-3.2.0 → infiagent-3.2.2}/README.md +2 -2
- {infiagent-3.2.0 → infiagent-3.2.2/infiagent.egg-info}/PKG-INFO +3 -3
- {infiagent-3.2.0 → infiagent-3.2.2}/infiagent.egg-info/SOURCES.txt +2 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/setup.py +1 -1
- infiagent-3.2.2/tests/test_web_ui_config_api.py +78 -0
- infiagent-3.2.2/tests/test_windows_compat.py +42 -0
- infiagent-3.2.2/utils/windows_compat.py +57 -0
- infiagent-3.2.0/utils/windows_compat.py +0 -40
- {infiagent-3.2.0 → infiagent-3.2.2}/LICENSE +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/MANIFEST.in +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/OpenCowork/general_prompts.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/OpenCowork/level_-1_judge_agent.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/OpenCowork/level_0_tools.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/OpenCowork/level_3_agents.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/Researcher/general_prompts.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/Researcher/level_-1_judge_agent.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/Researcher/level_0_tools.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/Researcher/level_1_agents.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/Researcher/level_2_agents.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/Researcher/level_3_agents.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/run_env_config/ali_qwen_llm_config.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/run_env_config/document_convert_api.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/run_env_config/gemini_config_version.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/run_env_config/kimi_config_version copy.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/run_env_config/llm_config.example.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/run_env_config/llm_config.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/config/run_env_config/third_part_api.yaml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/agent_event_emitter.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/agent_executor.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/context_builder.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/event_handlers.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/events.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/hierarchy_manager.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/runtime_exceptions.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/state_cleaner.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/core/tool_executor.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/infiagent/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/infiagent/sdk.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/infiagent.egg-info/dependency_links.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/infiagent.egg-info/entry_points.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/infiagent.egg-info/requires.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/infiagent.egg-info/top_level.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/pyproject.toml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/requirements.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/services/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/services/action_compressor.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/services/context_compressor_backup.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/services/llm_client.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/services/thinking_agent.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/setup.cfg +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/algorithmic-art/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/algorithmic-art/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/algorithmic-art/templates/generator_template.js +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/algorithmic-art/templates/viewer.html +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/brand-guidelines/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/brand-guidelines/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Jura-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Lora-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/doc-coauthoring/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/accept_changes.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/comment.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/helpers/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/helpers/merge_runs.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/helpers/simplify_redlines.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/pack.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/mce/mc.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/soffice.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/unpack.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/validate.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/validators/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/validators/base.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/validators/docx.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/validators/pptx.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/office/validators/redlining.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/templates/comments.xml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/templates/commentsExtended.xml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/templates/commentsExtensible.xml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/templates/commentsIds.xml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/docx/scripts/templates/people.xml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/frontend-design/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/frontend-design/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/internal-comms/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/internal-comms/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/internal-comms/examples/3p-updates.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/internal-comms/examples/company-newsletter.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/internal-comms/examples/faq-answers.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/internal-comms/examples/general-comms.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mac-use/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mac-use/requirements.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mac-use/scripts/mac_use.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/reference/evaluation.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/reference/mcp_best_practices.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/reference/node_mcp_server.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/reference/python_mcp_server.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/scripts/connections.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/scripts/evaluation.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/scripts/example_evaluation.xml +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/mcp-builder/scripts/requirements.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/forms.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/reference.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/check_bounding_boxes.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/check_fillable_fields.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/convert_pdf_to_images.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/create_validation_image.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/extract_form_field_info.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/extract_form_structure.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/fill_fillable_fields.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/editing.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/pptxgenjs.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/add_slide.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/clean.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/helpers/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/helpers/merge_runs.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/helpers/simplify_redlines.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/pack.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/mce/mc.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/soffice.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/unpack.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/validate.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/validators/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/validators/base.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/validators/docx.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/validators/pptx.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/office/validators/redlining.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/pptx/scripts/thumbnail.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/slack-gif-creator/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/slack-gif-creator/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/slack-gif-creator/core/easing.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/slack-gif-creator/core/frame_composer.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/slack-gif-creator/core/gif_builder.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/slack-gif-creator/core/validators.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/slack-gif-creator/requirements.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/theme-showcase.pdf +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/arctic-frost.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/botanical-garden.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/desert-rose.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/forest-canopy.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/golden-hour.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/midnight-galaxy.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/modern-minimalist.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/ocean-depths.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/sunset-boulevard.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/theme-factory/themes/tech-innovation.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/web-artifacts-builder/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/web-artifacts-builder/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/web-artifacts-builder/scripts/bundle-artifact.sh +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/web-artifacts-builder/scripts/init-artifact.sh +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/webapp-testing/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/webapp-testing/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/webapp-testing/examples/console_logging.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/webapp-testing/examples/element_discovery.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/webapp-testing/examples/static_html_automation.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/webapp-testing/scripts/with_server.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/LICENSE.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/SKILL.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/helpers/merge_runs.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/helpers/simplify_redlines.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/pack.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/mce/mc.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/soffice.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/unpack.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/validate.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/validators/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/validators/base.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/validators/docx.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/validators/pptx.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/office/validators/redlining.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/skills/xlsx/scripts/recalc.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/start.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_cheapclaw_service.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_code_tools_system_terminal.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_context_hooks.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_file_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_image_read_message.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_kimi_stream_compat.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_llm_client_lite_openrouter.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_llm_client_resilience.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_llm_config_builder.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_llm_debug_output.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_reasoning_modes.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_sdk_observability.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_sdk_runtime_paths.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_task_history_index.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_thinking_prompt_contract.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tests/test_tool_hooks.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/llm_client_lite.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/registry.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/requirements.txt +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/BROWSER_IMPROVEMENTS.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/FILE_READ_USAGE.md +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/arxiv_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/audio_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/browser_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/code_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/convert_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/document_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/file_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/human_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/paper_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/powerpoint_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/reference_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/skill_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/task_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/vision_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/tool_server_lite/tools/web_tools.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/__init__.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/cli_mode.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/config_loader.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/config_manager.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/context_hooks.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/conversation_storage.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/event_emitter.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/llm_config_builder.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/mcp_manager.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/runtime_control.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/skill_loader.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/task_history_index.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/task_runtime.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/tool_hooks.py +0 -0
- {infiagent-3.2.0 → infiagent-3.2.2}/utils/user_paths.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: infiagent
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: InfiAgent multi-agent framework for long-running task automation
|
|
5
5
|
Home-page: https://github.com/ChenglinPoly/Multi-Level-Agent
|
|
6
6
|
Author: Chenglin Yu
|
|
@@ -55,7 +55,7 @@ Requires-Dist: psutil>=5.9.0
|
|
|
55
55
|
<h1>MLA V3 - Build Domain-Specific SOTA-Level AI Agents</h1>
|
|
56
56
|
|
|
57
57
|
<p>
|
|
58
|
-
<img src="https://img.shields.io/badge/version-3.2.
|
|
58
|
+
<img src="https://img.shields.io/badge/version-3.2.2-blue.svg" alt="Version">
|
|
59
59
|
<img src="https://img.shields.io/badge/python-3.9+-green.svg" alt="Python">
|
|
60
60
|
<img src="https://img.shields.io/badge/license-GPL-blue.svg" alt="License: GPL">
|
|
61
61
|
</p>
|
|
@@ -84,7 +84,7 @@ If you pulled the image or code before the latest update date, please refer to t
|
|
|
84
84
|
|
|
85
85
|
- [2026/03/31] **Switchable Thinking / ReAct execution mode + task-history database retrieval:** Runtime now supports a switchable cadence model. You can keep the original ThinkingAgent-style “plan first, then execute N steps” workflow, or disable thinking and fall back to an explicit ReAct loop where reflection text is persisted directly inside the message history. Historical task records are also indexed into a local SQLite database, and agents now get a built-in `task_history_search` tool by default. The SDK can expose only the most recent N historical tasks into prompt context, and agents are explicitly instructed to retrieve older task history from the database when recent context is not enough.
|
|
86
86
|
|
|
87
|
-
- [2026/03/30] **SDK / mac model configuration is now much easier for non-experts:** The SDK now accepts structured model profiles directly instead of forcing every integration to hand-write `llm_config.yaml
|
|
87
|
+
- [2026/03/30] **SDK / mac / Web UI model configuration is now much easier for non-experts:** The SDK now accepts structured model profiles directly instead of forcing every integration to hand-write `llm_config.yaml`. The mac desktop app and Docker Web UI both now expose a source-based model editor: you configure the default `base_url` / `api_key` once, then add multiple shared or per-slot models, and each row can either reuse the default source or switch to a custom URL / key. Raw YAML / JSON remain available as advanced fallbacks, but most users no longer need to manually type prefixes or JSON model objects.
|
|
88
88
|
|
|
89
89
|
- [2026/03/23] **Docker Web UI now supports multi-user registration and account management:** The latest `chenglinhku/mlav3:latest` image runs the SDK-based Web UI directly with the new `webui` startup command on port `4242`. Users can register from the login page, and the bootstrap admin account can manage users inside the Web UI. Please follow the updated Docker command in Quick Start / `docs/DOCKER_GUIDE.md`: mount `~/.mla_v3` to `/root/mla_v3`, publish `4242`, and use `chenglinhku/mlav3:latest webui`. The old standalone config page flow on `9641` is no longer required.
|
|
90
90
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<h1>MLA V3 - Build Domain-Specific SOTA-Level AI Agents</h1>
|
|
5
5
|
|
|
6
6
|
<p>
|
|
7
|
-
<img src="https://img.shields.io/badge/version-3.2.
|
|
7
|
+
<img src="https://img.shields.io/badge/version-3.2.2-blue.svg" alt="Version">
|
|
8
8
|
<img src="https://img.shields.io/badge/python-3.9+-green.svg" alt="Python">
|
|
9
9
|
<img src="https://img.shields.io/badge/license-GPL-blue.svg" alt="License: GPL">
|
|
10
10
|
</p>
|
|
@@ -33,7 +33,7 @@ If you pulled the image or code before the latest update date, please refer to t
|
|
|
33
33
|
|
|
34
34
|
- [2026/03/31] **Switchable Thinking / ReAct execution mode + task-history database retrieval:** Runtime now supports a switchable cadence model. You can keep the original ThinkingAgent-style “plan first, then execute N steps” workflow, or disable thinking and fall back to an explicit ReAct loop where reflection text is persisted directly inside the message history. Historical task records are also indexed into a local SQLite database, and agents now get a built-in `task_history_search` tool by default. The SDK can expose only the most recent N historical tasks into prompt context, and agents are explicitly instructed to retrieve older task history from the database when recent context is not enough.
|
|
35
35
|
|
|
36
|
-
- [2026/03/30] **SDK / mac model configuration is now much easier for non-experts:** The SDK now accepts structured model profiles directly instead of forcing every integration to hand-write `llm_config.yaml
|
|
36
|
+
- [2026/03/30] **SDK / mac / Web UI model configuration is now much easier for non-experts:** The SDK now accepts structured model profiles directly instead of forcing every integration to hand-write `llm_config.yaml`. The mac desktop app and Docker Web UI both now expose a source-based model editor: you configure the default `base_url` / `api_key` once, then add multiple shared or per-slot models, and each row can either reuse the default source or switch to a custom URL / key. Raw YAML / JSON remain available as advanced fallbacks, but most users no longer need to manually type prefixes or JSON model objects.
|
|
37
37
|
|
|
38
38
|
- [2026/03/23] **Docker Web UI now supports multi-user registration and account management:** The latest `chenglinhku/mlav3:latest` image runs the SDK-based Web UI directly with the new `webui` startup command on port `4242`. Users can register from the login page, and the bootstrap admin account can manage users inside the Web UI. Please follow the updated Docker command in Quick Start / `docs/DOCKER_GUIDE.md`: mount `~/.mla_v3` to `/root/mla_v3`, publish `4242`, and use `chenglinhku/mlav3:latest webui`. The old standalone config page flow on `9641` is no longer required.
|
|
39
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: infiagent
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: InfiAgent multi-agent framework for long-running task automation
|
|
5
5
|
Home-page: https://github.com/ChenglinPoly/Multi-Level-Agent
|
|
6
6
|
Author: Chenglin Yu
|
|
@@ -55,7 +55,7 @@ Requires-Dist: psutil>=5.9.0
|
|
|
55
55
|
<h1>MLA V3 - Build Domain-Specific SOTA-Level AI Agents</h1>
|
|
56
56
|
|
|
57
57
|
<p>
|
|
58
|
-
<img src="https://img.shields.io/badge/version-3.2.
|
|
58
|
+
<img src="https://img.shields.io/badge/version-3.2.2-blue.svg" alt="Version">
|
|
59
59
|
<img src="https://img.shields.io/badge/python-3.9+-green.svg" alt="Python">
|
|
60
60
|
<img src="https://img.shields.io/badge/license-GPL-blue.svg" alt="License: GPL">
|
|
61
61
|
</p>
|
|
@@ -84,7 +84,7 @@ If you pulled the image or code before the latest update date, please refer to t
|
|
|
84
84
|
|
|
85
85
|
- [2026/03/31] **Switchable Thinking / ReAct execution mode + task-history database retrieval:** Runtime now supports a switchable cadence model. You can keep the original ThinkingAgent-style “plan first, then execute N steps” workflow, or disable thinking and fall back to an explicit ReAct loop where reflection text is persisted directly inside the message history. Historical task records are also indexed into a local SQLite database, and agents now get a built-in `task_history_search` tool by default. The SDK can expose only the most recent N historical tasks into prompt context, and agents are explicitly instructed to retrieve older task history from the database when recent context is not enough.
|
|
86
86
|
|
|
87
|
-
- [2026/03/30] **SDK / mac model configuration is now much easier for non-experts:** The SDK now accepts structured model profiles directly instead of forcing every integration to hand-write `llm_config.yaml
|
|
87
|
+
- [2026/03/30] **SDK / mac / Web UI model configuration is now much easier for non-experts:** The SDK now accepts structured model profiles directly instead of forcing every integration to hand-write `llm_config.yaml`. The mac desktop app and Docker Web UI both now expose a source-based model editor: you configure the default `base_url` / `api_key` once, then add multiple shared or per-slot models, and each row can either reuse the default source or switch to a custom URL / key. Raw YAML / JSON remain available as advanced fallbacks, but most users no longer need to manually type prefixes or JSON model objects.
|
|
88
88
|
|
|
89
89
|
- [2026/03/23] **Docker Web UI now supports multi-user registration and account management:** The latest `chenglinhku/mlav3:latest` image runs the SDK-based Web UI directly with the new `webui` startup command on port `4242`. Users can register from the login page, and the bootstrap admin account can manage users inside the Web UI. Please follow the updated Docker command in Quick Start / `docs/DOCKER_GUIDE.md`: mount `~/.mla_v3` to `/root/mla_v3`, publish `4242`, and use `chenglinhku/mlav3:latest webui`. The old standalone config page flow on `9641` is no longer required.
|
|
90
90
|
|
|
@@ -388,6 +388,8 @@ tests/test_sdk_runtime_paths.py
|
|
|
388
388
|
tests/test_task_history_index.py
|
|
389
389
|
tests/test_thinking_prompt_contract.py
|
|
390
390
|
tests/test_tool_hooks.py
|
|
391
|
+
tests/test_web_ui_config_api.py
|
|
392
|
+
tests/test_windows_compat.py
|
|
391
393
|
tool_server_lite/__init__.py
|
|
392
394
|
tool_server_lite/llm_client_lite.py
|
|
393
395
|
tool_server_lite/registry.py
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import importlib.util
|
|
7
|
+
import os
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
SERVER_PATH = Path(__file__).resolve().parents[1] / "web_ui" / "server" / "server.py"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _load_web_server(tmp_path):
|
|
16
|
+
os.environ["WEB_UI_USER_DATA_ROOT"] = str(tmp_path)
|
|
17
|
+
for key in ["user_runtime", "server", "mla_web_ui_server_test"]:
|
|
18
|
+
sys.modules.pop(key, None)
|
|
19
|
+
spec = importlib.util.spec_from_file_location("mla_web_ui_server_test", SERVER_PATH)
|
|
20
|
+
module = importlib.util.module_from_spec(spec)
|
|
21
|
+
assert spec.loader is not None
|
|
22
|
+
spec.loader.exec_module(module)
|
|
23
|
+
return module
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _auth_client(app):
|
|
27
|
+
client = app.test_client()
|
|
28
|
+
with client.session_transaction() as session:
|
|
29
|
+
session["logged_in"] = True
|
|
30
|
+
session["username"] = "tester"
|
|
31
|
+
session["role"] = "admin"
|
|
32
|
+
return client
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_guided_config_roundtrip_and_run_env_list(tmp_path):
|
|
36
|
+
module = _load_web_server(tmp_path)
|
|
37
|
+
client = _auth_client(module.app)
|
|
38
|
+
|
|
39
|
+
list_resp = client.get("/api/config/list?type=run_env")
|
|
40
|
+
assert list_resp.status_code == 200
|
|
41
|
+
names = [item["name"] for item in list_resp.get_json()["files"]]
|
|
42
|
+
assert "llm_config.yaml" in names
|
|
43
|
+
assert "app_config.json" in names
|
|
44
|
+
|
|
45
|
+
guided_resp = client.get("/api/config/guided")
|
|
46
|
+
assert guided_resp.status_code == 200
|
|
47
|
+
payload = guided_resp.get_json()
|
|
48
|
+
assert "llm_config" in payload
|
|
49
|
+
assert "app_config" in payload
|
|
50
|
+
|
|
51
|
+
payload["llm_config"]["base_url"] = "https://openrouter.ai/api/v1"
|
|
52
|
+
payload["llm_config"]["models"] = [
|
|
53
|
+
{"name": "openrouter/google/gemini-3-flash-preview", "tool_choice": "required"}
|
|
54
|
+
]
|
|
55
|
+
payload["app_config"].setdefault("runtime", {})["thinking_enabled"] = False
|
|
56
|
+
payload["app_config"].setdefault("runtime", {})["thinking_steps"] = 9
|
|
57
|
+
payload["app_config"].setdefault("context", {})["user_history_recent_items"] = 4
|
|
58
|
+
|
|
59
|
+
save_resp = client.post(
|
|
60
|
+
"/api/config/guided",
|
|
61
|
+
json={
|
|
62
|
+
"llm_config": payload["llm_config"],
|
|
63
|
+
"app_config": payload["app_config"],
|
|
64
|
+
},
|
|
65
|
+
)
|
|
66
|
+
assert save_resp.status_code == 200
|
|
67
|
+
assert save_resp.get_json()["success"] is True
|
|
68
|
+
|
|
69
|
+
app_cfg_resp = client.get("/api/config/read?file=app_config.json&type=run_env")
|
|
70
|
+
assert app_cfg_resp.status_code == 200
|
|
71
|
+
app_cfg_text = app_cfg_resp.get_json()["content"]
|
|
72
|
+
assert '"thinking_enabled": false' in app_cfg_text
|
|
73
|
+
assert '"user_history_recent_items": 4' in app_cfg_text
|
|
74
|
+
|
|
75
|
+
llm_cfg_resp = client.get("/api/config/read?file=llm_config.yaml&type=run_env")
|
|
76
|
+
assert llm_cfg_resp.status_code == 200
|
|
77
|
+
llm_cfg_text = llm_cfg_resp.get_json()["content"]
|
|
78
|
+
assert "openrouter/google/gemini-3-flash-preview" in llm_cfg_text
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
import io
|
|
5
|
+
import sys
|
|
6
|
+
import unittest
|
|
7
|
+
from unittest import mock
|
|
8
|
+
|
|
9
|
+
from utils import windows_compat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class _DummyStream(io.StringIO):
|
|
13
|
+
def __init__(self):
|
|
14
|
+
super().__init__()
|
|
15
|
+
self.reconfigure_calls = []
|
|
16
|
+
|
|
17
|
+
def reconfigure(self, **kwargs):
|
|
18
|
+
self.reconfigure_calls.append(kwargs)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class WindowsCompatTests(unittest.TestCase):
|
|
22
|
+
def test_setup_console_encoding_prefers_reconfigure(self):
|
|
23
|
+
stdout = _DummyStream()
|
|
24
|
+
stderr = _DummyStream()
|
|
25
|
+
with mock.patch.object(sys, "platform", "win32"):
|
|
26
|
+
with mock.patch.object(sys, "stdout", stdout), mock.patch.object(sys, "stderr", stderr):
|
|
27
|
+
windows_compat.setup_console_encoding()
|
|
28
|
+
self.assertEqual(len(stdout.reconfigure_calls), 1)
|
|
29
|
+
self.assertEqual(len(stderr.reconfigure_calls), 1)
|
|
30
|
+
self.assertEqual(stdout.reconfigure_calls[0]["encoding"], "utf-8")
|
|
31
|
+
self.assertEqual(stderr.reconfigure_calls[0]["encoding"], "utf-8")
|
|
32
|
+
|
|
33
|
+
def test_safe_print_ignores_closed_file_on_windows(self):
|
|
34
|
+
closed = io.StringIO()
|
|
35
|
+
closed.close()
|
|
36
|
+
with mock.patch.object(sys, "platform", "win32"):
|
|
37
|
+
with mock.patch.object(sys, "stdout", closed), mock.patch.object(sys, "stderr", closed):
|
|
38
|
+
windows_compat.safe_print("hello")
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if __name__ == "__main__":
|
|
42
|
+
unittest.main()
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
Windows兼容性工具
|
|
5
|
+
确保emoji和中文字符能在Windows控制台正常显示
|
|
6
|
+
"""
|
|
7
|
+
import sys
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _reconfigure_stream(stream):
|
|
11
|
+
"""优先原位 reconfigure,避免重新包裹 stdout/stderr 导致解释器退出时报 closed file。"""
|
|
12
|
+
if stream is None or getattr(stream, "closed", False):
|
|
13
|
+
return
|
|
14
|
+
try:
|
|
15
|
+
if hasattr(stream, "reconfigure"):
|
|
16
|
+
stream.reconfigure(encoding="utf-8", errors="replace", line_buffering=True, write_through=True)
|
|
17
|
+
except Exception:
|
|
18
|
+
# 某些 IDE/重定向流不支持 reconfigure;此时保持原状即可
|
|
19
|
+
pass
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def setup_console_encoding():
|
|
23
|
+
"""设置控制台为UTF-8编码(Windows专用),并启用实时输出"""
|
|
24
|
+
if sys.platform == 'win32':
|
|
25
|
+
try:
|
|
26
|
+
_reconfigure_stream(sys.stdout)
|
|
27
|
+
_reconfigure_stream(sys.stderr)
|
|
28
|
+
except Exception:
|
|
29
|
+
# 如果设置失败,不影响程序运行
|
|
30
|
+
pass
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def safe_print(*args, **kwargs):
|
|
34
|
+
"""
|
|
35
|
+
安全的print函数,自动flush避免Windows缓冲区问题
|
|
36
|
+
"""
|
|
37
|
+
if sys.platform == 'win32' and 'flush' not in kwargs:
|
|
38
|
+
kwargs['flush'] = True
|
|
39
|
+
try:
|
|
40
|
+
print(*args, **kwargs)
|
|
41
|
+
except ValueError as exc:
|
|
42
|
+
# Windows 某些 IDE/关闭中的控制台在解释器收尾阶段会触发 closed file。
|
|
43
|
+
if sys.platform == 'win32' and 'closed file' in str(exc).lower():
|
|
44
|
+
return
|
|
45
|
+
raise
|
|
46
|
+
if sys.platform == 'win32':
|
|
47
|
+
try:
|
|
48
|
+
if getattr(sys.stdout, 'closed', False) is False:
|
|
49
|
+
sys.stdout.flush()
|
|
50
|
+
if getattr(sys.stderr, 'closed', False) is False:
|
|
51
|
+
sys.stderr.flush()
|
|
52
|
+
except Exception:
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# 自动设置(导入时执行)
|
|
57
|
+
setup_console_encoding()
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
# -*- coding: utf-8 -*-
|
|
3
|
-
"""
|
|
4
|
-
Windows兼容性工具
|
|
5
|
-
确保emoji和中文字符能在Windows控制台正常显示
|
|
6
|
-
"""
|
|
7
|
-
import sys
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def setup_console_encoding():
|
|
11
|
-
"""设置控制台为UTF-8编码(Windows专用),并启用实时输出"""
|
|
12
|
-
if sys.platform == 'win32':
|
|
13
|
-
try:
|
|
14
|
-
import io
|
|
15
|
-
# 强制行缓冲和立即写入,避免输出延迟
|
|
16
|
-
if hasattr(sys.stdout, 'buffer'):
|
|
17
|
-
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', line_buffering=True, write_through=True)
|
|
18
|
-
if hasattr(sys.stderr, 'buffer'):
|
|
19
|
-
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', line_buffering=True, write_through=True)
|
|
20
|
-
except Exception:
|
|
21
|
-
# 如果设置失败,不影响程序运行
|
|
22
|
-
pass
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def safe_print(*args, **kwargs):
|
|
26
|
-
"""
|
|
27
|
-
安全的print函数,自动flush避免Windows缓冲区问题
|
|
28
|
-
"""
|
|
29
|
-
print(*args, **kwargs)
|
|
30
|
-
if sys.platform == 'win32':
|
|
31
|
-
try:
|
|
32
|
-
sys.stdout.flush()
|
|
33
|
-
sys.stderr.flush()
|
|
34
|
-
except Exception:
|
|
35
|
-
pass
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# 自动设置(导入时执行)
|
|
39
|
-
setup_console_encoding()
|
|
40
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/OpenCowork/level_-1_judge_agent.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/config/agent_library/Researcher/level_-1_judge_agent.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt
RENAMED
|
File without changes
|
{infiagent-3.2.0 → infiagent-3.2.2}/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|