briefloop 0.24.0__tar.gz → 0.25.0__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.
- {briefloop-0.24.0 → briefloop-0.25.0}/CHANGELOG.md +13 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/PKG-INFO +16 -15
- {briefloop-0.24.0 → briefloop-0.25.0}/README.md +15 -14
- briefloop-0.25.0/VERSION +1 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/desktop/electron/package-lock.json +2 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/desktop/electron/package.json +1 -1
- briefloop-0.25.0/docs/OpenCode/347/211/210/346/234/254/345/205/274/345/256/271.md +58 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//346/212/245/345/221/212/347/274/226/350/276/221/344/270/216/346/250/241/346/235/277.md +7 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//346/241/214/351/235/242/345/256/211/350/243/205/344/270/216/346/233/264/346/226/260.md +2 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//347/211/210/346/234/254/344/270/200/350/207/264/346/200/247/346/243/200/346/237/245.md +6 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//351/252/214/346/224/266/350/256/260/345/275/225.md +52 -0
- briefloop-0.25.0/frontend/app-updates.js +90 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/app.js +110 -427
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/assessment-panel.js +15 -1
- briefloop-0.25.0/frontend/delivery.js +82 -0
- briefloop-0.25.0/frontend/excel-export.js +30 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/notifications.js +3 -1
- briefloop-0.25.0/frontend/office-tools.js +116 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/reasoning-controls.js +2 -1
- briefloop-0.25.0/frontend/report-export.js +106 -0
- briefloop-0.25.0/frontend/report-language.js +58 -0
- briefloop-0.25.0/frontend/review-controls.js +142 -0
- briefloop-0.25.0/frontend/review-results.js +19 -0
- briefloop-0.25.0/frontend/templates.js +99 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/pyproject.toml +1 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/README.md +5 -1
- briefloop-0.25.0/src/briefloop/__init__.py +1 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/analyst.py +4 -4
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/audit_bundle.py +42 -6
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/backends/__init__.py +3 -3
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/backends/opencode_server.py +65 -13
- briefloop-0.25.0/src/briefloop/backends/opencode_v2.py +286 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/chat_tools.py +8 -3
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/cli.py +2 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/deliverable_spec.py +12 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/delivery_checks.py +80 -38
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/document_export.py +29 -12
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/document_workflows.py +11 -3
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/export_jobs.py +20 -4
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/exports.py +14 -10
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/harness.py +1 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/industry_export.py +34 -27
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/interactive_runtime.py +22 -5
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/models.py +46 -6
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/native_orchestrator.py +12 -12
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/notifications.py +1 -1
- briefloop-0.25.0/src/briefloop/office_cli.py +595 -0
- briefloop-0.25.0/src/briefloop/ooxml_order.py +115 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/opencode_harness.py +23 -7
- briefloop-0.25.0/src/briefloop/opencode_version.py +54 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.analyst.zh.md +1 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/release.py +3 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/review.py +42 -6
- briefloop-0.25.0/src/briefloop/review_capability.py +105 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/runtime.py +61 -16
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/runtime_reasoning.py +21 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/schedules.py +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/server.py +45 -9
- briefloop-0.25.0/src/briefloop/static/app.js +309 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/index.html +8 -8
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/style.css +1 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/store.py +19 -9
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/task_labels.py +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t1.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t2.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t3.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t4.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t5.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/general-report-zh-t5.docx → briefloop-0.25.0/src/briefloop/template_assets/annual-report-zh-t1.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/annual-report-zh-t1.docx → briefloop-0.25.0/src/briefloop/template_assets/annual-report-zh-t2.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/general-report-zh-t4.docx → briefloop-0.25.0/src/briefloop/template_assets/annual-report-zh-t3.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/general-report-zh-t3.docx → briefloop-0.25.0/src/briefloop/template_assets/annual-report-zh-t4.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/annual-report-zh-t5.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t1.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t2.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t3.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t4.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t5.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t1.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t1.spec.json +62 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t2.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t2.spec.json +62 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t3.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t3.spec.json +62 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t4.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t4.spec.json +62 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t5.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-en-t5.spec.json +62 -0
- briefloop-0.24.0/src/briefloop/template_assets/annual-report-zh-t5.docx → briefloop-0.25.0/src/briefloop/template_assets/general-report-zh-t1.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/general-report-zh-t1.docx → briefloop-0.25.0/src/briefloop/template_assets/general-report-zh-t2.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/annual-report-zh-t4.docx → briefloop-0.25.0/src/briefloop/template_assets/general-report-zh-t3.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/annual-report-zh-t3.docx → briefloop-0.25.0/src/briefloop/template_assets/general-report-zh-t4.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/general-report-zh-t5.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/government-doc-zh-t4.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t1.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t2.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t3.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t4.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t5.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t1.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t2.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t3.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t4.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t5.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t1.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t1.spec.json +54 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t2.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t2.spec.json +54 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t3.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t3.spec.json +54 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t4.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t4.spec.json +54 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t5.docx +0 -0
- briefloop-0.25.0/src/briefloop/template_assets/stock-research-en-t5.spec.json +54 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t1.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t2.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t3.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t4.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t5.docx +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/templates.py +11 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/writing_guidance.py +13 -2
- briefloop-0.25.0/src/briefloop/xlsx_export.py +609 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop.egg-info/PKG-INFO +16 -15
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop.egg-info/SOURCES.txt +52 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_app_updates.mjs +12 -9
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_chat_attachments.mjs +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_chat_commands.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_chat_drafts.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_chat_polling.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_citation_edit.mjs +3 -2
- briefloop-0.25.0/tests/frontend_excel_export.mjs +111 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_fast_mode.mjs +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_home_v2.mjs +8 -6
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_learning_authorization.mjs +3 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_live_status.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_markdown_import.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_model_label.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_model_selection.mjs +9 -8
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_native_runtime.mjs +5 -4
- briefloop-0.25.0/tests/frontend_office_tools.mjs +275 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_open_brief_status.mjs +6 -5
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_pending_report.mjs +2 -1
- briefloop-0.25.0/tests/frontend_polling.mjs +65 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_progress_race.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_release_controls.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_release_navigation.mjs +12 -7
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_report_chat_drawer.mjs +3 -2
- briefloop-0.25.0/tests/frontend_report_export.mjs +131 -0
- briefloop-0.25.0/tests/frontend_report_language.mjs +41 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_report_outline.mjs +4 -3
- briefloop-0.25.0/tests/frontend_review_capability.mjs +101 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_review_status.mjs +4 -9
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_runtime_discovery.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_runtime_feedback.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_save_barrier.mjs +32 -14
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_settings_workspaces.mjs +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_setup_state.mjs +6 -5
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_source_library.mjs +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_startup_recovery.mjs +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_task_progress.mjs +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_template_groups.mjs +32 -31
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_version_bodies.mjs +6 -7
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_welcome_gate.mjs +5 -5
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_workspace_proposal.mjs +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_writing_preferences.mjs +3 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_agent_commands.py +7 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_builtin_templates.py +3 -3
- briefloop-0.25.0/tests/test_cli_doctor.py +16 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_core.py +24 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_delivery_checks.py +96 -2
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_demo.py +13 -4
- briefloop-0.25.0/tests/test_english_reports.py +121 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_export_admission.py +50 -0
- briefloop-0.25.0/tests/test_export_xlsx.py +662 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_figure_exports.py +2 -1
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_analyst.py +5 -5
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_orchestrator.py +19 -4
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_review_contract.py +5 -4
- briefloop-0.25.0/tests/test_office_cli.py +705 -0
- briefloop-0.25.0/tests/test_office_surfaces.py +291 -0
- briefloop-0.25.0/tests/test_ooxml_order.py +54 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_opencode_harness.py +1 -1
- briefloop-0.25.0/tests/test_opencode_prompt_versions.py +55 -0
- briefloop-0.25.0/tests/test_opencode_reasoning.py +40 -0
- briefloop-0.25.0/tests/test_opencode_review_version.py +79 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_opencode_search_prompt.py +5 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_opencode_server_stdin.py +1 -0
- briefloop-0.25.0/tests/test_opencode_v2.py +286 -0
- briefloop-0.25.0/tests/test_opencode_version_probe.py +40 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review_capability.py +40 -26
- briefloop-0.25.0/tests/test_review_final_reply.py +57 -0
- briefloop-0.25.0/tests/test_review_modes.py +171 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_server_boundary.py +16 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_task_labels.py +6 -3
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_windows_platform.py +8 -1
- briefloop-0.25.0/tests/test_xlsx_officecli_integration.py +125 -0
- briefloop-0.24.0/VERSION +0 -1
- briefloop-0.24.0/src/briefloop/__init__.py +0 -1
- briefloop-0.24.0/src/briefloop/review_capability.py +0 -102
- briefloop-0.24.0/src/briefloop/static/app.js +0 -309
- briefloop-0.24.0/src/briefloop/template_assets/annual-report-zh-t2.docx +0 -0
- briefloop-0.24.0/src/briefloop/template_assets/general-report-zh-t2.docx +0 -0
- briefloop-0.24.0/tests/frontend_polling.mjs +0 -22
- briefloop-0.24.0/tests/frontend_report_export.mjs +0 -100
- briefloop-0.24.0/tests/frontend_review_capability.mjs +0 -58
- {briefloop-0.24.0 → briefloop-0.25.0}/.gitattributes +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/CONTRIBUTING.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/KNOWN_ISSUES.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/LICENSE +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/MANIFEST.in +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/SECURITY.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/THIRD_PARTY_NOTICES.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/bootstrap.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/WorkBuddy/345/244/226/351/203/250/345/205/245/345/217/243.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/architecture.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/compose/spec/home-v2.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/native-integration.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/report-time-window.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/technical-report-0.21.0/evidence-index.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/technical-report-0.21.0/technical-report.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/windows.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs/writer-input.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//344/272/247/345/223/201/345/256/232/344/275/215/344/270/216/351/252/214/350/257/201.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//344/274/232/350/256/256/347/272/252/350/246/201.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//344/275/277/347/224/250/346/214/207/345/215/227.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//345/206/205/347/275/256/345/274/225/346/223/216.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//345/215/207/347/272/247/350/257/264/346/230/216.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//345/233/276/350/241/250/344/270/216Excel.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//345/244/232Runtime/344/270/216/346/250/241/345/236/213.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//345/244/232/346/250/241/346/200/201/346/235/245/346/272/220.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//345/256/232/346/227/266/346/212/245/345/221/212.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//345/257/271/350/257/235/345/256/277/344/270/273/345/210/207/346/215/242.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//346/267/261/345/272/246/347/240/224/347/251/266/344/270/216/344/272/213/345/256/236/346/240/270/346/237/245.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//350/241/214/344/270/232/346/212/245/345/221/212.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//350/257/201/345/210/270/347/240/224/347/251/266.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//350/257/201/346/215/256/344/270/216/347/273/223/350/256/272/350/277/275/346/272/257.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/docs//350/277/220/350/241/214/346/227/266/351/200/211/346/213/251/344/270/216/346/243/200/346/265/213.md" +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/examples/internal-weekly-report/README.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/examples/internal-weekly-report/report.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/examples/internal-weekly-report/source.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/examples/meeting-minutes/transcript.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/examples/stock-research/earnings-event.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/api.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/clipboard.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/connectors.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/dom.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/fact-check-grants.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/mcp-selection.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/polling.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/report-panels.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/review-status.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/rich-document.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/runtime-cards.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/schedules.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/source-library-search.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/task-progress.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/time.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/uploads.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/version-diff.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/frontend/welcome.js +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/package-lock.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/package.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/probes/mcp_m0/README.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/probes/mcp_m0/probe.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/probes/mcp_m0/requirements.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/probes/mcp_m0/server.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/bridge.test.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/build.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/catalog.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/main.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/pi.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/reasoning.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/windows-command.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/runtime-bridge/zcode.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/scripts/build_frontend.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/scripts/build_frontend_licenses.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/scripts/check_versions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/scripts/test_frontend.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/setup.cfg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/__main__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/_entrypoint.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/agent_commands.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/agent_prompts.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/analyst_drafts.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/app_server.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/bocha.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/bridge_harness.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/chat_dispatch.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/chat_execution.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/chat_store.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/codex_diagnostics.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/company_context.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/conflicts.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/MATERIALS.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/README.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/config.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/grants.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/materials.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/receipts.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/runtime.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/runtime_tools.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/service.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/stdio_supervisor.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/task_client.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/tasks.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/transport.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/connectors/windows_acl.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/default_fonts.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/demo.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/document_model.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/docx_text.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/draft_checks.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/duckduckgo.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/evidence.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/execution_records.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/execution_timing.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/external_client.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/external_requests.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/fact_check.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/fast_mode.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/figure_support.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/figure_text.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/figures.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/host_bins.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/industry_data.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/learning.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/learning_budget.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/length.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/media.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/native_engine.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/native_harness.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/native_providers.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/native_roles.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/packet_views.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/parent_watch.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/platform_support.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/process_host.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/progress.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/projections.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/core.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/mode.background.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/mode.interactive.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.chat.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.evaluator.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.fact_checker.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.maintainer.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.orchestrator.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.proposer.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.reviewer.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/prompt_assets/role.scout.zh.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/reconciliation.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/report_profiles.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/report_time.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/report_tools.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/research_budget.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/research_plan.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/review_learning.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/revision_policy.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/rpc_writer.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/runtime_bridge.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/runtime_permissions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/scout.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/scout_evidence.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/scout_tools.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/search_credentials.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/search_policy.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/skill_assets/briefloop-external/SKILL.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/skill_assets/duckduckgo/SKILL.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/skill_assets/multi-search/SKILL.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/skill_assets/tavily/SKILL.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/skills.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/software_version.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/source_context.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/source_library_search.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/source_search.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/source_updates.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/sources.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/frontend-licenses.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/native-engine-licenses.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/native-engine-models.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/native-engine.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-aider.png +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-amr.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-antigravity.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-bridge.LICENSE.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-bridge.NOTICE.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-bridge.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-briefloop.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-claude.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-codebuddy.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-codex.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-copilot.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-cursor-agent.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-deepseek.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-devin.png +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-grok-build.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-hermes.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-kilo.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-kimi.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-kiro.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-mimo.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-opencode.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-pi.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-qoder.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-qwen.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-reasoning.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-reasonix.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-trae-cli.png +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/runtime-vibe.svg +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/static/tokens.css +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/task_notify.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/task_progress.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/tavily.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t1.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t2.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t3.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/academic-paper-zh-t5.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/annual-report-zh-t1.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/annual-report-zh-t2.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/annual-report-zh-t3.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/annual-report-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/annual-report-zh-t5.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t1.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t2.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t3.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/business-report-zh-t5.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/general-report-zh-t1.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/general-report-zh-t2.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/general-report-zh-t3.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/general-report-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/general-report-zh-t5.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/government-doc-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t1.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t2.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t3.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/legal-contract-zh-t5.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t1.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t2.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t3.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/meeting-minutes-zh-t5.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t1.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t2.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t3.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t4.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/template_assets/stock-research-zh-t5.spec.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/websearch.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/windows_process.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/word_import.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workbook_figures.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/business_report/evaluation.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/business_report/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/business_report/methods/decision_memo.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/business_report/methods/industry_periodic.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/business_report/methods/work_progress.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/business_report/planning.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/business_report/writing.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/general_report/evaluation.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/general_report/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/general_report/planning.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/general_report/writing.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/meeting_minutes/evaluation.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/meeting_minutes/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/meeting_minutes/planning.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/meeting_minutes/writing.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/stock_research/evaluation.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/stock_research/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/stock_research/methods/company_research.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/stock_research/methods/event_commentary.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/stock_research/methods/industry_tracking.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/stock_research/planning.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workflow_assets/stock_research/writing.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workspace_profile.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/workspaces.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/writer_assembly.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/writer_input.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop/zhipu.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop.egg-info/dependency_links.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop.egg-info/entry_points.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop.egg-info/requires.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/briefloop.egg-info/top_level.txt +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/__main__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/_licenses/LICENSE +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/_licenses/NOTICE.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/_licenses/third_party/acorn/LICENSE +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/_licenses/third_party/acorn/NOTICE.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/_licenses/third_party/officeqa/LICENSE-APACHE +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/_licenses/third_party/officeqa/NOTICE +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/alfworld/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/alfworld/act.sh +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/alfworld/rollout.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/alfworld/step.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/benchmarks/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/benchmarks/alfworld.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/benchmarks/livemath.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/benchmarks/sealqa.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/benchmarks/spreadsheet.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/cli.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/codex_identity.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/engine.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/feedback_loop.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/isolated/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/isolated/audit.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/isolated/runtime.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/isolated/tools_server.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/jsonl.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/k4_lock.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/livemath/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/livemath/loop.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/livemath/rollout.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/native_agents.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/dataset.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/fetch.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/loop.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/retrieval.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/reward.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/rollout.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/scoring.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/officeqa/wiki_agents.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/paper_alignment/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/paper_alignment/contracts.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/paper_alignment/evidence.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/product.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/product_cli.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/product_install.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/product_views.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/id_split/split_manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/id_split/test.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/id_split/train.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/id_split/val.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/wiki/SKILL-s0.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/wiki/index.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/wiki/logs.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/wiki/prompts/maintainer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/wiki/prompts/proposer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/alfworld/wiki/skill-impact.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/isolated/model-catalog-direct.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split/split_manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split/test.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split/train.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split/val.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split-v2/split_manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split-v2/test.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split-v2/train.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/id_split-v2/val.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/protocol.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/wiki/SKILL-s0.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/wiki/index.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/wiki/logs.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/wiki/prompts/maintainer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/wiki/prompts/proposer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/livemath/wiki/skill-impact.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/id_split/split_manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/id_split/test.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/id_split/train.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/id_split/val.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/protocol.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/wiki/SKILL-s0.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/wiki/index.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/wiki/logs.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/wiki/prompts/maintainer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/wiki/prompts/proposer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/officeqa/wiki/skill-impact.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/paper_alignment/README.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/paper_alignment/prompts/maintainer.paper.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/paper_alignment/prompts/officeqa.paper.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/paper_alignment/prompts/proposer.paper.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/paper_alignment/prompts/spreadsheet.paper.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/agents/claude-code/wikiskill-executor.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/agents/claude-code/wikiskill-maintainer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/agents/claude-code/wikiskill-proposer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/agents/codex/wikiskill-executor.toml +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/agents/codex/wikiskill-maintainer.toml +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/agents/codex/wikiskill-proposer.toml +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/entry-skill/SKILL.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/entry-skill/agents/openai.yaml +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/entry-skill/references/native-subagents.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/entry-skill/references/workflow.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/roles/executor.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/roles/maintainer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/product/roles/proposer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/final-20260907/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/final-20260907/math-episodes.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/final-20260907/sealqa-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/final-20260907/spreadsheet-SKILL.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/final-20260907/spreadsheet-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/final-20260907/summary.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/example-provenance.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/installed-smoke.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/repeat1-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/repeat2-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/repeat3-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/summary.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/repeatability-20260908/wiki-deliver-the-recalculated-workbook.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/livemath/55.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/livemath/luna.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/officeqa/55.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/officeqa/terra.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/officeqa-retrieval/55.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/officeqa-retrieval/sol.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/sealqa/sol.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/spreadsheet/55.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/skills/spreadsheet/sol.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/snapshot.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/snapshot.sha256 +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260906/livemath-luna-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260906/livemath-luna-skill.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260906/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260906/officeqa-luna-skill.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260906/officeqa-sol-skill.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260906/officeqa-sol-v2-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260906/studies.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/effort-analysis.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/effort-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-skill.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-pairs.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-skill.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/research/update-20260907/studies.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/runtime/acorn.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/runtime/audit_js.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/id_split/split_manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/id_split/test.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/id_split/train.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/id_split/val.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/protocol.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/wiki/SKILL-s0.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/wiki/index.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/wiki/logs.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/wiki/prompts/maintainer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/wiki/prompts/proposer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/sealqa/wiki/skill-impact.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/id_split/split_manifest.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/id_split/test.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/id_split/train.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/id_split/val.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/protocol.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/wiki/SKILL-s0.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/wiki/index.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/wiki/logs.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/wiki/prompts/maintainer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/wiki/prompts/proposer.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/resources/spreadsheet/wiki/skill-impact.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/results.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/score_rules.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/scorer_trust.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/sealqa/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/sealqa/loop.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/sealqa/rollout.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/settings.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/skill_proposer.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/spreadsheet/__init__.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/spreadsheet/loop.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/spreadsheet/rollout.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/spreadsheet/study.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/tool_audit.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/wiki.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/src/wikiskill/wiki_maintainer.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/start.ps1 +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/start.sh +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/check_distribution.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_checkout_eol.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_citation_clipboard.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_clipboard_fallback.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_export_menu.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_fact_check_grants.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_licenses.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_mcp_selection.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_reasoning_controls.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_report_load.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_report_panels.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_source_search.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_upload_limits.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/frontend_version_diff.mjs +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_agent_backend.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_analyst_draft_versions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_assessment_admission_recovery.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_background_no_question.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_bridge_harness.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_chat_dispatch.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_chat_execution.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_chat_model_selection.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_codex_idle.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_connection_test_history.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_connector_authorization.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_connector_empty_catalog.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_connector_materials.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_connector_tasks.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_connectors.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_cross_module_regressions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_delivery_consumers.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_desktop_lifecycle.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_document_workflows.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_draft_contract.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_entrypoint.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_evidence.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_evidence_parse_failures.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_execution_records.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_execution_timing.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_export_layout_swap.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_external_requests.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_fact_check_contract.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_fact_check_orchestration.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_fact_check_phase.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_fact_check_review.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_fact_check_switch.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_fact_status_tool.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_fast_mode.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_figure_flow.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_figure_text.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_figures.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_generation_schema_guidance.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_harness.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_host_bins.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_human_learning.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_industry_export.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_industry_flow.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_industry_research.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_interactive_runtime.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_learning_authorization.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_learning_integrity.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_length.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_media_sources.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_multimodal_harness.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_multimodal_http.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_evaluator.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_harness.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_learning.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_provider_storage.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_providers.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_native_scout.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_notifications.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_npm_native_shim.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_numeric_occurrence_review.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_office_source_structure.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_opencode_idle.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_opencode_provider.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_posix_process_tree.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_pr593_roundtrip.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_product_summary_consistency.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_progress.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_progress_pipeline.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_public_research.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_reader_contract.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_reader_source_export.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_reader_workflow.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_reconciliation.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_release.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_report_concurrency.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_report_deletion.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_report_length_feedback.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_report_path_regressions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_report_time.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_research_budget.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_research_handoff.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_research_plan.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_research_response_admission.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_resume_in_place.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review_learning.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review_packet_paths.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review_packet_utf8.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review_schema_drift.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review_snapshot.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_review_visual_input.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_revision_citations.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_revision_policy.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_rich_document.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_role_models.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_bridge.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_bridge_idle.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_concurrency.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_json_bom.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_liveness.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_names.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_permissions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_retry.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_runtime_settlement.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_schedules.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_scout_experiment.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_search_credentials.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_search_policy.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_settings_transactions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_software_version.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_source_library_search.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_source_recovery_regressions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_source_updates.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_sources_provenance.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_table_citation_advisory.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_task_notify.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_task_progress.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_tavily.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_template_saved_state.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_templates.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_user_source_refresh.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_version_consistency.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_websearch.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_websearch_singleflight.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_windows_antigravity_permissions.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_windows_connector_acl.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_windows_distribution.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_windows_mcp_supervisor.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_windows_runtime_bundle.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_word_import.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_word_source_locators.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_word_toc.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_worker_idle.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_workspace_action_errors.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_workspace_profile.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_workspaces.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_writer_assembly.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_writer_cli_guidance.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_writer_context.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/tests/test_writer_input.py +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/LICENSE +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/NOTICE.md +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/acp/constants.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/acp/json.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/acp/models.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/acp/rpc.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/acp/session-params.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/acp/types.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/byok-reference/byok-opencode.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/byok-reference/provider-models.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/core/index.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/core/json-line-stream.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/runtime-models/codex-models.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/runtime-models/fallbacks.json +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/runtime-models/mmd-routes.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/runtime-models/models.ts +0 -0
- {briefloop-0.24.0 → briefloop-0.25.0}/third_party/open-design/runtime-models/opencode-models.ts +0 -0
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# 变更记录
|
|
2
2
|
|
|
3
|
+
## 0.25.0
|
|
4
|
+
|
|
5
|
+
- 英文报告成为完整写作选项:语言随报告进入规划、写作、修订、评价与审阅,英文篇幅按词显示;新增10套英文版式,Word、HTML/PDF与Excel固定标签跟随报告语言。
|
|
6
|
+
- 新增 Excel 报表导出,可按表分工作表或整份报告单表导出。未安装 OfficeCLI 也可使用基础导出;可选增强失败或产物损坏时保留有效基础文件,支持取消、预览与去重复用。
|
|
7
|
+
- OfficeCLI 质检区分观察与失败,明确外部渲染服务说明;修复并发预览图片与元数据不一致、合并表头、大小写重名工作表,以及以等号开头的文本被误当公式。
|
|
8
|
+
- 同时支持 OpenCode 1.x 与 2.x,按实际宿主使用对应服务、会话、模型目录、推理档位和子任务协议;保留 v1,不自动迁移旧会话或认证。v2 Provider 配置在 OpenCode 中完成,已开始会话的系统约定变化需明确新建对话。
|
|
9
|
+
- 审阅拆分为默认普通模式与严格模式。普通模式支持 Codex、OpenCode 与 BriefLoop Agent;严格模式目前由 BriefLoop Agent 强制限定核查包和工具访问。事实与证据标准一致,实际模式和后端随任务冻结并显示,历史未知记录不冒充严格结果。
|
|
10
|
+
- 修复 Native 中文任务包读取和 Windows 更新缓存定位;英文模板选择、Word 渲染缓存与打包模板清单同步修正。
|
|
11
|
+
- 数值核验新增欧元、英镑、按数量级的股份、质量与电量单位;不同币种、功率/电量和百分比/百分点仍分开处理,未知单位不冒充已核验。
|
|
12
|
+
- 状态刷新始终保留正在排队或执行的旧任务,最近记录增加后不会把它们从任务列表挤掉;已结束历史仍保持有界。
|
|
13
|
+
|
|
14
|
+
本轮正式发布 macOS Apple Silicon、Python/CLI/PyPI 和 GitHub 源码;Windows 安装包保留既有稳定版,待原生验收后另行发布。Mac 包未做 Developer ID 签名或 Apple 公证。渠道状态及工件哈希以本次发行记录为准。
|
|
15
|
+
|
|
3
16
|
## 0.24.0
|
|
4
17
|
|
|
5
18
|
- 汇合 Windows 与 Native 两条开发线,延续 BriefLoop Agent / Agent CLI 统一入口。Native 的对话、研究、写稿、独立评价与修订继续使用同一份来源和版本记录;支持共用写稿装配工具,减少手动填写富文本结构。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: briefloop
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.25.0
|
|
4
4
|
Summary: Local multi-runtime agent workbench for sourced briefings, independent review and skill learning
|
|
5
5
|
Author: Stahl-G
|
|
6
6
|
License-Expression: MIT
|
|
@@ -41,17 +41,17 @@ Dynamic: license-file
|
|
|
41
41
|
|
|
42
42
|
面向行业研究、战略与 IR 使用者的本地报告工作台:把分散材料整理成可编辑简报,逐项查看重要结论的依据、处理审阅问题,并保留原稿与修订版本。适合需要定期写报告、核数字和核口径的单人工作。
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
界面与文档为中文,报告正文可选中文或英文;英文报告有独立写作规范、按词计的篇幅和英文版式,核查记录仍为中文。研究在所选本机宿主中执行,使用本次报告的共享预算。提供快速、标准和深度研究档位,以及生成后的可选独立事实核查;安装版可用功能以实际发行版本为准。见 [深度研究与事实核查](docs/深度研究与事实核查.md)。
|
|
45
45
|
|
|
46
46
|
新建报告可选择通用报告、商业报告(行业周报/月报、工作进展周报与决策分析)、证券研究(事件点评、公司研究与行业跟踪)或会议纪要。内容方法贯穿规划、写作、修订与评价,并随报告保存实际版本;Word 模板单独控制版式。八类内置版式均可使用;学术论文、上市公司年报、政府公文和合同的专门内容流程将分批接入。
|
|
47
47
|
|
|
48
48
|
运行时设置显示本地图标、简介、实际版本与模型信息;未安装工具按卡片浏览。首页仅保留宿主选择器,更新失败会区分检查、下载和安装阶段。见 [运行时选择与检测](docs/运行时选择与检测.md)。
|
|
49
49
|
|
|
50
|
-
## 0.
|
|
50
|
+
## 0.25:英文报告、Excel 与审阅模式
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
报告可选中文或英文,英文写作规范、词数和导出版式贯穿写稿与审阅;新增 Excel 报表导出,未安装 OfficeCLI 也能使用。OpenCode 1.x 与 2.x 同时支持,普通审阅和严格审阅分别展示实际能力,重大事实错误与证据缺口仍阻止正式交付。
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
本轮提供 macOS Apple Silicon、Python/CLI/PyPI 与 GitHub 源码;Windows 安装包沿用既有稳定版,待原生验收后单独更新。本轮 Mac 包未做 Developer ID 签名或 Apple 公证,平台验证与工件哈希见发行页。完整变更见 [CHANGELOG](CHANGELOG.md)。
|
|
55
55
|
|
|
56
56
|
新工作区默认优先 Tavily,同时允许宿主自带搜索补查;可主动启用博查、智谱搜索或 DuckDuckGo,按跨市场覆盖或具体缺口补查。受控渠道共用本轮预算,搜索失败、实际发现渠道与原文分别保留。Tavily 需要 API Key,额度以服务账号为准;宿主自带搜索取决于实际工具与权限。
|
|
57
57
|
|
|
@@ -89,7 +89,7 @@ briefloop start --workspace /path/to/workspace
|
|
|
89
89
|
实际生成前需要:
|
|
90
90
|
|
|
91
91
|
- macOS 或 Windows,以及 Python 3.11 或更新版本。
|
|
92
|
-
-
|
|
92
|
+
- 配置 BriefLoop Agent 的模型提供商,或至少一个已安装并完成认证的 Agent CLI:Codex CLI、Opencode CLI、Claude Code、Kimi、Hermes、DeepSeek Reasonix、MiMo Code 或 CodeBuddy Code。Codex 与 Opencode 走原生通道,其余 CLI 通过本地 bridge 接入;WebUI 安装需要 Node.js 20+,桌面 App 使用 Electron 内置 Node。
|
|
93
93
|
- 首次安装依赖需要网络。使用 Tavily、博查或智谱搜索时,另行配置对应服务的 Key。
|
|
94
94
|
|
|
95
95
|
也可指定目录、端口和后端:
|
|
@@ -147,7 +147,7 @@ Windows 也可不安装桌面 App,直接启动同一套 Python 服务与网页
|
|
|
147
147
|
| MiMo | bridge(JSON 事件流) | 原生 `models --verbose` |
|
|
148
148
|
| CodeBuddy Code | bridge(原生 `--acp`) | ACP 原生模型目录;支持手输模型 ID |
|
|
149
149
|
|
|
150
|
-
开发分支还提供 **BriefLoop 内置引擎**(需要 Node.js 22.19+):在“设置 → 模型与提供商”选择它,在“API 提供商”选择用于内置引擎,保存接口地址、API Key 和模型 ID。它直接执行对话、并行 Scout、Analyst 写稿及独立评价,复用同一套报告任务、来源、稿件、一次自动修订和导出。已完成一次真实模型公开周报的生成、评分、修订及失败恢复,并通过网页验证只读权限、版本保存与 Word
|
|
150
|
+
开发分支还提供 **BriefLoop 内置引擎**(需要 Node.js 22.19+):在“设置 → 模型与提供商”选择它,在“API 提供商”选择用于内置引擎,保存接口地址、API Key 和模型 ID。它直接执行对话、并行 Scout、Analyst 写稿及独立评价,复用同一套报告任务、来源、稿件、一次自动修订和导出。已完成一次真实模型公开周报的生成、评分、修订及失败恢复,并通过网页验证只读权限、版本保存与 Word 下载。内置引擎已随 0.24.0 发布;具体平台及新版本验收范围见发行记录,一次流程完成不证明报告事实全部正确。
|
|
151
151
|
|
|
152
152
|
内置引擎的 API Key 保存在本机 `~/.config/briefloop/native-engine/providers.json`,文件仅当前用户可读写,不放进工作区或核查包。模型请求仍会把本次实际读取的材料发送给所选模型服务商;受控检索遵循本报告已冻结的渠道与共享预算。它没有其他 CLI 的自带搜索或任意 shell,Reviewer 只拥有核查包内的读取工具。详见[内置引擎](docs/内置引擎.md)。
|
|
153
153
|
|
|
@@ -157,6 +157,7 @@ Windows 也可不安装桌面 App,直接启动同一套 Python 服务与网页
|
|
|
157
157
|
|
|
158
158
|
- Opencode 模型填完整 `provider/model`(如 `opencode-go/gpt-5.6-luna`),以本机 `opencode` 已登录的可选模型为准;BriefLoop 不枚举、不限制 provider。
|
|
159
159
|
- 推理档位在 Opencode 下叫 variant(如 high / max),留空为默认;聊天沿用工作区主模型的 variant。
|
|
160
|
+
- OpenCode 同时支持 1.x 与 2.x,按实际服务选择协议,不强制升级或降级。v2 的 Provider 配置在 OpenCode 中完成;既有对话系统约定变化时需明确新建对话。详见[双版本兼容与审阅模式](docs/OpenCode版本兼容.md)。
|
|
160
161
|
- 限制(以诚实为准):Codex 之外的宿主没有每轮网络硬开关,关闭联网时靠指令与权限执行,宿主自带的 shell 仍可能联网;只有 Codex 支持运行中追加(Opencode 与 bridge CLI 会明确拒绝);图片附件只在宿主支持读图时可用。
|
|
161
162
|
- 排查:任务失败先看任务日志;"模型 ID"类错误检查 `provider/model` 拼写与宿主登录状态;bridge 相关报错先确认 Node.js 20+ 与本机 CLI 已认证。可通过 `BRIEFLOOP_NODE=/absolute/path/to/node` 指定 Node;缺少 Node 不阻断 Codex / Opencode 的原生发现。
|
|
162
163
|
|
|
@@ -231,14 +232,14 @@ BriefLoop 用主链模型,另外三个角色可以在设置里分别指定、
|
|
|
231
232
|
|
|
232
233
|
## 正文篇幅
|
|
233
234
|
|
|
234
|
-
| 预设 |
|
|
235
|
+
| 预设 | 中文目标 / 上限(字) | 英文目标 / 上限(词) |
|
|
235
236
|
| --- | ---: | ---: |
|
|
236
|
-
| 速览 | 350
|
|
237
|
-
| 简短 | 800
|
|
238
|
-
| 标准 | 1,500
|
|
239
|
-
| 详细 | 2,000
|
|
237
|
+
| 速览 | 350 / 500 | 250 / 350 |
|
|
238
|
+
| 简短 | 800 / 1,000 | 500 / 650 |
|
|
239
|
+
| 标准 | 1,500 / 2,000 | 1,000 / 1,300 |
|
|
240
|
+
| 详细 | 2,000 / 2,500 | 1,300 / 1,600 |
|
|
240
241
|
|
|
241
|
-
数字可直接修改。中文汉字每字计 1,连续英文或数字串计 1;格式、URL
|
|
242
|
+
数字可直接修改。中文汉字每字计 1,连续英文或数字串计 1;格式、URL 和来源引用标记不计。英文报告按词计,预设按相近阅读量缩短(深度研究 6,500 / 8,000 词,行业定期报告 3,200 / 3,600 词)。原文摘录与定位放在来源记录中。页面显示保存后的实际计数,旧稿没有设置过数字要求时如实显示“未设置”。
|
|
242
243
|
|
|
243
244
|
## 正文图表与 Excel 复用
|
|
244
245
|
|
|
@@ -255,7 +256,7 @@ BriefLoop 按报告目的和历史参考决定哪里用图、哪里用表。可
|
|
|
255
256
|
- 已上传历史报告可以单独指定为结构与风格参考,不作为本期事实来源;不上传也能在开启联网后开始研究。
|
|
256
257
|
- 研究角色整理本期指标、前值、日期、单位和来源,调用确定计算工具;关键缺口可在剩余共享预算内定向补查,拿不到的数据列出缺口和影响。
|
|
257
258
|
- “数据与缺口”按钮可查看保存的原始值、变化和来源,不调用模型。
|
|
258
|
-
- Word 由“生成 Word”按钮触发,按固定报告版本制作并显示进度。保留通用模板,也支持上传单节 DOCX 准备工作区用户模板;完成后下载到 Word/WPS 查看;内置
|
|
259
|
+
- Word 由“生成 Word”按钮触发,按固定报告版本制作并显示进度。保留通用模板,也支持上传单节 DOCX 准备工作区用户模板;完成后下载到 Word/WPS 查看;内置 46 套版式(7 类中文文体和 2 类英文文体各 5 套主题,加 1 套固定公文版式),模板页点颜色即选,开箱可用。
|
|
259
260
|
- 网页以富文档保存内容、颜色、简单表格、图片和引用;Markdown 为兼容及导入/导出格式。用户改数后保留原始数据供核对,不把旧数据的核查状态套给新稿。
|
|
260
261
|
|
|
261
262
|
详细使用与数据接口见 [行业报告](docs/行业报告.md)。本次验证采用合成资料,未据此宣称真实行业覆盖率、事实正确率或成本改善。
|
|
@@ -319,7 +320,7 @@ npm test
|
|
|
319
320
|
|
|
320
321
|
新路径将重要主张绑定到具体原文行、PDF页、Excel单元格、图像和推断前提;网页可查看依据,正文修改后相应绑定需要复核。原始要求、研究方法、正文内容和写作偏好分别解释,企业报告正文不自动附内部检查清单。
|
|
321
322
|
|
|
322
|
-
Reviewer
|
|
323
|
+
Reviewer 使用本任务固定核查包,在独立会话中返回结构化发现及处理说明的复核结果。设置可选**普通审阅**(默认)或**严格审阅**:普通模式通过 Codex、OpenCode 1.x/2.x 或 BriefLoop Agent 的实际只读通道执行,不承诺宿主自动加载的全局/项目上下文完全隔离;严格模式额外强制包内读取,目前由 BriefLoop Agent 的专用核查工具提供。选择严格模式不会自动降级或更换执行后端。两种模式使用相同的事实、证据及交付检查,新任务冻结实际模式,历史未记录模式的审阅不被补标为严格。
|
|
323
324
|
|
|
324
325
|
工作稿Word下载保持可用。“正式交付”另行检查当前版本的独立审阅、重要主张及必答内容、核心未核验、重大未决发现和冲突;高分不能抵消阻断项。审计包单独导出,逐来源选择原件、摘录或仅定位,缺省仅定位;离线校验为结构与一致性检查,不是事实真伪自动证明。旧正式件保留,更正或后续更新另建版本。
|
|
325
326
|
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
面向行业研究、战略与 IR 使用者的本地报告工作台:把分散材料整理成可编辑简报,逐项查看重要结论的依据、处理审阅问题,并保留原稿与修订版本。适合需要定期写报告、核数字和核口径的单人工作。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
界面与文档为中文,报告正文可选中文或英文;英文报告有独立写作规范、按词计的篇幅和英文版式,核查记录仍为中文。研究在所选本机宿主中执行,使用本次报告的共享预算。提供快速、标准和深度研究档位,以及生成后的可选独立事实核查;安装版可用功能以实际发行版本为准。见 [深度研究与事实核查](docs/深度研究与事实核查.md)。
|
|
6
6
|
|
|
7
7
|
新建报告可选择通用报告、商业报告(行业周报/月报、工作进展周报与决策分析)、证券研究(事件点评、公司研究与行业跟踪)或会议纪要。内容方法贯穿规划、写作、修订与评价,并随报告保存实际版本;Word 模板单独控制版式。八类内置版式均可使用;学术论文、上市公司年报、政府公文和合同的专门内容流程将分批接入。
|
|
8
8
|
|
|
9
9
|
运行时设置显示本地图标、简介、实际版本与模型信息;未安装工具按卡片浏览。首页仅保留宿主选择器,更新失败会区分检查、下载和安装阶段。见 [运行时选择与检测](docs/运行时选择与检测.md)。
|
|
10
10
|
|
|
11
|
-
## 0.
|
|
11
|
+
## 0.25:英文报告、Excel 与审阅模式
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
报告可选中文或英文,英文写作规范、词数和导出版式贯穿写稿与审阅;新增 Excel 报表导出,未安装 OfficeCLI 也能使用。OpenCode 1.x 与 2.x 同时支持,普通审阅和严格审阅分别展示实际能力,重大事实错误与证据缺口仍阻止正式交付。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
本轮提供 macOS Apple Silicon、Python/CLI/PyPI 与 GitHub 源码;Windows 安装包沿用既有稳定版,待原生验收后单独更新。本轮 Mac 包未做 Developer ID 签名或 Apple 公证,平台验证与工件哈希见发行页。完整变更见 [CHANGELOG](CHANGELOG.md)。
|
|
16
16
|
|
|
17
17
|
新工作区默认优先 Tavily,同时允许宿主自带搜索补查;可主动启用博查、智谱搜索或 DuckDuckGo,按跨市场覆盖或具体缺口补查。受控渠道共用本轮预算,搜索失败、实际发现渠道与原文分别保留。Tavily 需要 API Key,额度以服务账号为准;宿主自带搜索取决于实际工具与权限。
|
|
18
18
|
|
|
@@ -50,7 +50,7 @@ briefloop start --workspace /path/to/workspace
|
|
|
50
50
|
实际生成前需要:
|
|
51
51
|
|
|
52
52
|
- macOS 或 Windows,以及 Python 3.11 或更新版本。
|
|
53
|
-
-
|
|
53
|
+
- 配置 BriefLoop Agent 的模型提供商,或至少一个已安装并完成认证的 Agent CLI:Codex CLI、Opencode CLI、Claude Code、Kimi、Hermes、DeepSeek Reasonix、MiMo Code 或 CodeBuddy Code。Codex 与 Opencode 走原生通道,其余 CLI 通过本地 bridge 接入;WebUI 安装需要 Node.js 20+,桌面 App 使用 Electron 内置 Node。
|
|
54
54
|
- 首次安装依赖需要网络。使用 Tavily、博查或智谱搜索时,另行配置对应服务的 Key。
|
|
55
55
|
|
|
56
56
|
也可指定目录、端口和后端:
|
|
@@ -108,7 +108,7 @@ Windows 也可不安装桌面 App,直接启动同一套 Python 服务与网页
|
|
|
108
108
|
| MiMo | bridge(JSON 事件流) | 原生 `models --verbose` |
|
|
109
109
|
| CodeBuddy Code | bridge(原生 `--acp`) | ACP 原生模型目录;支持手输模型 ID |
|
|
110
110
|
|
|
111
|
-
开发分支还提供 **BriefLoop 内置引擎**(需要 Node.js 22.19+):在“设置 → 模型与提供商”选择它,在“API 提供商”选择用于内置引擎,保存接口地址、API Key 和模型 ID。它直接执行对话、并行 Scout、Analyst 写稿及独立评价,复用同一套报告任务、来源、稿件、一次自动修订和导出。已完成一次真实模型公开周报的生成、评分、修订及失败恢复,并通过网页验证只读权限、版本保存与 Word
|
|
111
|
+
开发分支还提供 **BriefLoop 内置引擎**(需要 Node.js 22.19+):在“设置 → 模型与提供商”选择它,在“API 提供商”选择用于内置引擎,保存接口地址、API Key 和模型 ID。它直接执行对话、并行 Scout、Analyst 写稿及独立评价,复用同一套报告任务、来源、稿件、一次自动修订和导出。已完成一次真实模型公开周报的生成、评分、修订及失败恢复,并通过网页验证只读权限、版本保存与 Word 下载。内置引擎已随 0.24.0 发布;具体平台及新版本验收范围见发行记录,一次流程完成不证明报告事实全部正确。
|
|
112
112
|
|
|
113
113
|
内置引擎的 API Key 保存在本机 `~/.config/briefloop/native-engine/providers.json`,文件仅当前用户可读写,不放进工作区或核查包。模型请求仍会把本次实际读取的材料发送给所选模型服务商;受控检索遵循本报告已冻结的渠道与共享预算。它没有其他 CLI 的自带搜索或任意 shell,Reviewer 只拥有核查包内的读取工具。详见[内置引擎](docs/内置引擎.md)。
|
|
114
114
|
|
|
@@ -118,6 +118,7 @@ Windows 也可不安装桌面 App,直接启动同一套 Python 服务与网页
|
|
|
118
118
|
|
|
119
119
|
- Opencode 模型填完整 `provider/model`(如 `opencode-go/gpt-5.6-luna`),以本机 `opencode` 已登录的可选模型为准;BriefLoop 不枚举、不限制 provider。
|
|
120
120
|
- 推理档位在 Opencode 下叫 variant(如 high / max),留空为默认;聊天沿用工作区主模型的 variant。
|
|
121
|
+
- OpenCode 同时支持 1.x 与 2.x,按实际服务选择协议,不强制升级或降级。v2 的 Provider 配置在 OpenCode 中完成;既有对话系统约定变化时需明确新建对话。详见[双版本兼容与审阅模式](docs/OpenCode版本兼容.md)。
|
|
121
122
|
- 限制(以诚实为准):Codex 之外的宿主没有每轮网络硬开关,关闭联网时靠指令与权限执行,宿主自带的 shell 仍可能联网;只有 Codex 支持运行中追加(Opencode 与 bridge CLI 会明确拒绝);图片附件只在宿主支持读图时可用。
|
|
122
123
|
- 排查:任务失败先看任务日志;"模型 ID"类错误检查 `provider/model` 拼写与宿主登录状态;bridge 相关报错先确认 Node.js 20+ 与本机 CLI 已认证。可通过 `BRIEFLOOP_NODE=/absolute/path/to/node` 指定 Node;缺少 Node 不阻断 Codex / Opencode 的原生发现。
|
|
123
124
|
|
|
@@ -192,14 +193,14 @@ BriefLoop 用主链模型,另外三个角色可以在设置里分别指定、
|
|
|
192
193
|
|
|
193
194
|
## 正文篇幅
|
|
194
195
|
|
|
195
|
-
| 预设 |
|
|
196
|
+
| 预设 | 中文目标 / 上限(字) | 英文目标 / 上限(词) |
|
|
196
197
|
| --- | ---: | ---: |
|
|
197
|
-
| 速览 | 350
|
|
198
|
-
| 简短 | 800
|
|
199
|
-
| 标准 | 1,500
|
|
200
|
-
| 详细 | 2,000
|
|
198
|
+
| 速览 | 350 / 500 | 250 / 350 |
|
|
199
|
+
| 简短 | 800 / 1,000 | 500 / 650 |
|
|
200
|
+
| 标准 | 1,500 / 2,000 | 1,000 / 1,300 |
|
|
201
|
+
| 详细 | 2,000 / 2,500 | 1,300 / 1,600 |
|
|
201
202
|
|
|
202
|
-
数字可直接修改。中文汉字每字计 1,连续英文或数字串计 1;格式、URL
|
|
203
|
+
数字可直接修改。中文汉字每字计 1,连续英文或数字串计 1;格式、URL 和来源引用标记不计。英文报告按词计,预设按相近阅读量缩短(深度研究 6,500 / 8,000 词,行业定期报告 3,200 / 3,600 词)。原文摘录与定位放在来源记录中。页面显示保存后的实际计数,旧稿没有设置过数字要求时如实显示“未设置”。
|
|
203
204
|
|
|
204
205
|
## 正文图表与 Excel 复用
|
|
205
206
|
|
|
@@ -216,7 +217,7 @@ BriefLoop 按报告目的和历史参考决定哪里用图、哪里用表。可
|
|
|
216
217
|
- 已上传历史报告可以单独指定为结构与风格参考,不作为本期事实来源;不上传也能在开启联网后开始研究。
|
|
217
218
|
- 研究角色整理本期指标、前值、日期、单位和来源,调用确定计算工具;关键缺口可在剩余共享预算内定向补查,拿不到的数据列出缺口和影响。
|
|
218
219
|
- “数据与缺口”按钮可查看保存的原始值、变化和来源,不调用模型。
|
|
219
|
-
- Word 由“生成 Word”按钮触发,按固定报告版本制作并显示进度。保留通用模板,也支持上传单节 DOCX 准备工作区用户模板;完成后下载到 Word/WPS 查看;内置
|
|
220
|
+
- Word 由“生成 Word”按钮触发,按固定报告版本制作并显示进度。保留通用模板,也支持上传单节 DOCX 准备工作区用户模板;完成后下载到 Word/WPS 查看;内置 46 套版式(7 类中文文体和 2 类英文文体各 5 套主题,加 1 套固定公文版式),模板页点颜色即选,开箱可用。
|
|
220
221
|
- 网页以富文档保存内容、颜色、简单表格、图片和引用;Markdown 为兼容及导入/导出格式。用户改数后保留原始数据供核对,不把旧数据的核查状态套给新稿。
|
|
221
222
|
|
|
222
223
|
详细使用与数据接口见 [行业报告](docs/行业报告.md)。本次验证采用合成资料,未据此宣称真实行业覆盖率、事实正确率或成本改善。
|
|
@@ -280,7 +281,7 @@ npm test
|
|
|
280
281
|
|
|
281
282
|
新路径将重要主张绑定到具体原文行、PDF页、Excel单元格、图像和推断前提;网页可查看依据,正文修改后相应绑定需要复核。原始要求、研究方法、正文内容和写作偏好分别解释,企业报告正文不自动附内部检查清单。
|
|
282
283
|
|
|
283
|
-
Reviewer
|
|
284
|
+
Reviewer 使用本任务固定核查包,在独立会话中返回结构化发现及处理说明的复核结果。设置可选**普通审阅**(默认)或**严格审阅**:普通模式通过 Codex、OpenCode 1.x/2.x 或 BriefLoop Agent 的实际只读通道执行,不承诺宿主自动加载的全局/项目上下文完全隔离;严格模式额外强制包内读取,目前由 BriefLoop Agent 的专用核查工具提供。选择严格模式不会自动降级或更换执行后端。两种模式使用相同的事实、证据及交付检查,新任务冻结实际模式,历史未记录模式的审阅不被补标为严格。
|
|
284
285
|
|
|
285
286
|
工作稿Word下载保持可用。“正式交付”另行检查当前版本的独立审阅、重要主张及必答内容、核心未核验、重大未决发现和冲突;高分不能抵消阻断项。审计包单独导出,逐来源选择原件、摘录或仅定位,缺省仅定位;离线校验为结构与一致性检查,不是事实真伪自动证明。旧正式件保留,更正或后续更新另建版本。
|
|
286
287
|
|
briefloop-0.25.0/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.25.0
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "briefloop-desktop",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "briefloop-desktop",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.25.0",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# OpenCode v1 / v2 兼容
|
|
2
|
+
|
|
3
|
+
BriefLoop 保留 OpenCode 1.x 接口,并为 OpenCode 2.x 使用独立适配层。界面仍选择同一个 OpenCode CLI,程序依据实际可执行文件和所启动服务的版本选择协议,不要求卸载 v1,也不自动安装、降级或迁移 OpenCode。
|
|
4
|
+
|
|
5
|
+
## 两代协议
|
|
6
|
+
|
|
7
|
+
| 项目 | v1 | v2 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| 服务检查 | `/global/health` | `/api/info` |
|
|
10
|
+
| 会话目录 | 请求的 `directory` 查询参数 | 创建时的 `location.directory`,后续核对绑定 |
|
|
11
|
+
| 模型与推理档位 | 会话 ModelRef 和逐次 prompt 的 model/variant | 会话 ModelRef;变更后回读,再发送正文 |
|
|
12
|
+
| 任务系统说明 | prompt 的 `system` 字段 | 首次 instruction entry 进入 system;开始执行后仅允许同值续接,变更要求明确新建对话 |
|
|
13
|
+
| 会话执行 | `prompt_async` 与消息轮询 | `prompt` 与分页消息投影 |
|
|
14
|
+
| 模型目录 | `/config/providers` | `/api/provider` 与 `/api/model` |
|
|
15
|
+
|
|
16
|
+
v2 删除了 `models --verbose`。产品中的模型选择和推理档位共用 BriefLoop 管理的服务及模型目录,使用所选模型实际公开的 variant;不会猜测固定的 low/high 列表。目录没有该模型、没有公开档位、读取失败是不同状态。
|
|
17
|
+
|
|
18
|
+
新适配保留目录、模型、推理档位、权限、附件和任务说明;宿主拒绝或未保留这些关键参数时,不删掉参数后重试。旧会话在新宿主里不存在时,返回可解释错误,不静默创建新会话冒充恢复。
|
|
19
|
+
|
|
20
|
+
## 明确的能力边界
|
|
21
|
+
|
|
22
|
+
- **普通生成与对话**:v1 保留原路线;v2 接入新的会话协议。
|
|
23
|
+
- **系统约定变更**:真实 v2.0.14 的本地兼容供应方请求显示,后续 instruction entry 的修改/删除以 `user` 角色传出,历史初始 system 内容仍保留,并不等价于 v1 每轮重新提供 system。因此本实现会在已开始会话的约定发生变更时拒绝本轮任务,且先于模型、Agent 或条目修改;不自动替换、重建会话或重发。相同约定可继续,同日同设置的普通连续对话不会必然受阻。模型/推理档位、联网状态、搜索策略、工作区基础资料、系统日期/时区或程序升级导致约定变化时,需要明确新建对话。
|
|
24
|
+
- **独立审阅**:OpenCode v1 / v2 都可执行普通审阅,使用新独立会话、原生只读工具规则和同一套事实与证据检查。两代宿主都可能自动加载全局或祖先目录说明,因此都不宣称核查包完全隔离。严格审阅额外要求强制包内读取,当前通过 BriefLoop Agent 的专用核查工具执行;用户明确选择严格模式时,不自动改为普通模式或更换后端。
|
|
25
|
+
- **提供方配置**:v1 原有配置保存功能保留。已核对的 v2.0.14 没有等价的公开 Provider 写入接口,v2 下须在 OpenCode 中完成配置;BriefLoop 不擅自写宿主私有配置或迁移认证。产品会明确拒绝不支持的保存操作,不返回虚假的成功。
|
|
26
|
+
- **旧数据迁移**:如 OpenCode v2 尚未迁移 v1 会话,应在 OpenCode 内按其流程处理,或者明确新建 BriefLoop 对话。BriefLoop 不自动重发旧任务。
|
|
27
|
+
- **权限含义**:原生工具规则不是操作系统沙箱。v2 的 `shell` 对应 v1 的 `bash`;写入、编辑和补丁由 `edit` 规则约束。外部目录规则以及联网工具限制的范围沿宿主实际实现说明,不宣称禁止一切外部访问。
|
|
28
|
+
- **子任务接口**:v1 使用 `task`;v2 使用 `subagent`,传递 `agent`、`description`、`prompt`,仅在继续已有子任务时传真实 `sessionID`。前台返回 `completed` 后再收取结果;`running` 不算完成。研究分工、材料、预算和默认模型继承策略保持一致。
|
|
29
|
+
|
|
30
|
+
`briefloop doctor` 返回 `opencode_supported_majors`,表示软件适配范围;检测到命令及版本不等于已经登录、模型可调用或完整报告通过验收。
|
|
31
|
+
|
|
32
|
+
## 实现与验证依据
|
|
33
|
+
|
|
34
|
+
协议基于 OpenCode **1.18.31** 的实际服务及 **2.0.14** 的实际服务和同版本官方接口。没有把 SDK 路径中的“v2”与可执行程序的主版本混为一谈。
|
|
35
|
+
|
|
36
|
+
官方来源:
|
|
37
|
+
|
|
38
|
+
- [OpenCode v2.0.14](https://github.com/anomalyco/opencode/tree/v2.0.14)
|
|
39
|
+
- [v2 会话接口](https://github.com/anomalyco/opencode/blob/v2.0.14/packages/server/src/handlers/session.ts)
|
|
40
|
+
- [系统说明装配](https://github.com/anomalyco/opencode/blob/v2.0.14/packages/core/src/session/model-request.ts)
|
|
41
|
+
- [原生指令条目](https://github.com/anomalyco/opencode/blob/v2.0.14/packages/core/src/session/instruction-entry.ts)
|
|
42
|
+
- [权限执行](https://github.com/anomalyco/opencode/blob/v2.0.14/packages/core/src/permission.ts)
|
|
43
|
+
|
|
44
|
+
测试区分协议单元检查、隔离的真实 CLI 服务检查,以及真实模型报告。合成服务或本地模拟供应方用于验证接线,不作为真实模型质量、跨平台桌面或正式交付通过的证据。具体结果随该功能的验收记录补充。
|
|
45
|
+
|
|
46
|
+
## 普通与严格审阅
|
|
47
|
+
|
|
48
|
+
设置中的审阅模式与执行后端分开选择,新请求默认普通审阅。普通模式目前接入 Codex CLI、OpenCode CLI 和 BriefLoop Agent;严格模式目前只由 BriefLoop Agent 提供。新增能力以服务返回的实际能力列表为准,界面不通过版本号推测隔离能力。
|
|
49
|
+
|
|
50
|
+
普通与严格使用相同的原稿、来源、版本绑定和问题接纳规则。重大事实错误、核心证据缺口和未决重要冲突仍阻止正式交付;严格不等于事实必然正确,普通也不是降低质量标准。
|
|
51
|
+
|
|
52
|
+
新任务冻结模式与实际后端,结果页显示实际记录。后改设置只影响新请求。历史缺字段的记录显示“历史审阅(未记录模式)”,不因引擎名称补写为严格,也不重写旧报告与有效审阅。
|
|
53
|
+
|
|
54
|
+
## 本次验证边界
|
|
55
|
+
|
|
56
|
+
在 macOS 上使用真实 OpenCode 1.18.31 和 2.0.14、隔离的自建配置和本地合成供应方,验证了服务认证、会话与模型 High 档位、读取回执、拒绝写入、中文消息、用量投影、空子会话列表、空闲取消及自有进程清理。另跑通 v2 Harness 到 ChatStore 的中文消息保存。没有使用用户凭据或外部付费模型。
|
|
57
|
+
|
|
58
|
+
这些验证证明协议接通,不是完整报告质量验收。未声称覆盖长任务取消、所有权限逃逸、真实多子 Agent 报告或 Windows 桌面;Windows npm shim 转换另用行为测试检查。后续系统约定拒绝、审阅模式与版本字段恢复由定向行为测试验证,具体集成结果见验收记录。
|
|
@@ -6,7 +6,13 @@ BriefLoop 将报告内容保存为结构化富文档。网页可直接修改文
|
|
|
6
6
|
|
|
7
7
|
在“材料与需求”选择通用模板,或上传 DOCX 创建“我的模板”。BriefLoop 一次性识别章节、职责与本期可替换字段,程序准备模板底稿;后续选择已准备的模板即可复用。
|
|
8
8
|
|
|
9
|
-
工作区首次打开即自动注册内置版式矩阵:7
|
|
9
|
+
工作区首次打开即自动注册内置版式矩阵:7 类中文文体(通用报告、商务报告、学术论文、上市公司年报、合同、会议纪要、券商研报)和 2 类英文文体(英文通用报告、英文研报)各 5 套主题(品牌绿/极简蓝/珊瑚红/石墨黑/典雅灰),另加 1 套政府公文,共 46 套——政府公文按 GB/T 9704 固定红头、仿宋与黑体标题,不随主题变化,只出正典一格。文体决定结构与封面(如公文红头、合同甲乙方表、研报评级卡),主题决定主色与字体字号。模板页为画廊布局:每类文体一张卡片(图标、适用说明、配色点),先点卡片选文体、再点配色点选主题,底部「已选」栏确认后点「使用该模板」即设为新建报告的默认版式并跳转新建表单;设置页模板下拉按文体分组。内置模板走与上传模板相同的准备管线,不调用模型,随包分发。
|
|
10
|
+
|
|
11
|
+
## 英文报告
|
|
12
|
+
|
|
13
|
+
在“材料与需求”把报告语言设为 English,或选用英文版式(选用内置版式时报告语言随之切换,仍可手动改回)。英文报告的正文、标题、图表与表头用英文,写作和审阅按英文规范(数字与大数换算、币种、日期、中文来源的转述与专名);research_notes、缺口和核查记录仍用中文,方便在中文界面核对。篇幅按词计,预设按相近阅读量缩短。Word、HTML 和 PDF 的来源列表、目录与页码使用英文标签;来源名称保留原标题。封面上的时间范围和组织名按表单原文显示,英文报告请用英文填写。英文版式的章节标题为英文,章节职责说明仍为中文。
|
|
14
|
+
|
|
15
|
+
中文专有文体(政府公文、上市公司年报、合同等)不提供英文版;中文模板用于英文报告时,章节标题由写作 Agent 按职责译成英文,Word 仍沿用该模板的版式。
|
|
10
16
|
|
|
11
17
|
当前模板准备支持单节 DOCX 报告。遇到无法支持的版式会显示具体错误并保留原件,可调整主模板后重新导入;不会自动套用其他模板。当前不提供网页 Word 分页预览。
|
|
12
18
|
|
|
@@ -11,7 +11,7 @@ BriefLoop 桌面 App 与 WebUI 共用报告、材料、模型设置和本地工
|
|
|
11
11
|
| macOS Apple Silicon | `BriefLoop-<版本>-arm64.dmg` | 打开 DMG,将 BriefLoop 拷入 Applications,运行已安装的 App。 |
|
|
12
12
|
| Windows x64 | `BriefLoop-Setup-<版本>-x64.exe` | 运行安装程序,选择当前用户的安装目录。 |
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
本轮 0.25.0 macOS 包未做 Developer ID 签名或 Apple 公证;Windows 安装包保留发行页已有稳定版,未将 CI 测试当作 Windows 实机验收。既有 Windows 包也未使用代码签名。系统可能显示未识别开发者或发布者;核对下载来源与发行页的 SHA-256 后,使用系统提供的单个应用许可入口。不要关闭整个系统的安全设置。Intel Mac、Windows ARM 和 Linux 桌面包未列入首批发行。
|
|
15
15
|
|
|
16
16
|
需要 WebUI 时,可按 [README](../README.md) 使用源码或 PyPI 包,无需安装 Electron App。PyPI 提供 Python 服务,不包含桌面安装包。
|
|
17
17
|
|
|
@@ -30,7 +30,7 @@ Electron 已包含运行桥接需要的 Node。无需另外为 BriefLoop 桌面
|
|
|
30
30
|
|
|
31
31
|
## 保存、Word 与退出
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
在报告页编辑并保存正文,点击 Word 导出,保存后直接下载;通过原生“另存为”选择位置,再使用 Word 或 WPS 阅读。下载对应已保存的版本,界面上的未保存修改需要先保存。
|
|
34
34
|
|
|
35
35
|
关闭 App 会先请求保存。任务仍在运行时,可选择继续工作,或停止任务并退出。保存或停止失败时窗口保留,显示实际错误。桌面只管理本窗口启动的工作区服务;不会按程序名称批量关闭其他 Python、Node 或模型进程。
|
|
36
36
|
|
|
@@ -27,3 +27,9 @@ python scripts/check_versions.py --platform-report mac.json --platform-report wi
|
|
|
27
27
|
只有源码和 CLI、Mac、Windows、PyPI 四项实际记录都匹配,`all_platforms_consistent` 才为 `true`。未提供的通道显示 `unverified`;`--require-all` 将未核验也视为失败。异版平台记录不能混入本次报告。不要修改记录中的版本字段来使检查通过。
|
|
28
28
|
|
|
29
29
|
发布前不要求 PyPI 已有待发布版本。分批发布时允许先上传 Python 包,但发布后的完整核对必须如实报告桌面包滞后;源码版本一致不等于安装包已重新发布,也不代表用户本机已升级。
|
|
30
|
+
|
|
31
|
+
## PyPI Trusted Publisher
|
|
32
|
+
|
|
33
|
+
项目维护者在 PyPI 的 `briefloop` 项目发布设置中绑定 GitHub:owner `Stahl-G`,repository `briefloop`,workflow `publish-pypi.yml`,environment `pypi`。工作流通过 GitHub OIDC 获取短期发布身份,不需要把长期 PyPI Token 写入仓库或 Actions secrets。绑定需由拥有该 PyPI 项目权限的维护者完成。
|
|
34
|
+
|
|
35
|
+
先公开已验收的 GitHub Release,再手动运行 **Publish verified release to PyPI**,填入标签、冻结源提交、wheel 和 sdist 的 SHA-256。工作流检查 release/tag/包元数据和哈希,仅上传已经验证的工件,不重新构建。若先前部分上传成功,仅在 PyPI 同名文件的哈希完全相同且未撤回时跳过该文件;不一致会中止。发布后仍需运行上面的 `--pypi --wheel` 实际渠道核对。
|
{briefloop-0.24.0 → briefloop-0.25.0}/docs//351/252/214/346/224/266/350/256/260/345/275/225.md
RENAMED
|
@@ -301,3 +301,55 @@ Scout 在内置引擎上是独立会话:冻结的任务包,联网只经 web_
|
|
|
301
301
|
这是一组开放检索观察:约束相同,实际检索词、网页、来源覆盖和缓存状态不完全相同;Native 增量接纳与 OpenCode 文件交接仍不同。能确认本轮 Native 不再更慢,不能据单样本宣布稳定优于 OpenCode或完成整个报告闭环。本轮未运行 Analyst、独立 Reviewer、修订或导出,仍需解决 facts 与引文的语义对应及跨来源分歧遗漏。
|
|
302
302
|
|
|
303
303
|
先前外部终端的一次 Native 请求返回 401、零 token;替换终端进程时已经开始的 OpenCode 部分被中断,单独标为无效记录,不混入本表。正式两臂结束后,实验进程及其 Native/OpenCode 子进程均已退出。私有原始结果为 `~/Developer/briefloop-eval/scout/aligned-pair-20260920-030842.jsonl`,归档含两端产物、来源、哈希、工具记录、用量元数据及抽查说明;不含密钥或隐藏推理正文,不进入 Git。
|
|
304
|
+
|
|
305
|
+
### 2026-09-25:英文报告小型真实闭环
|
|
306
|
+
|
|
307
|
+
冻结提交 `9812347f`(`claude/english-reports`)。新工作区;后端为内置引擎,模型 `opencode-go/deepseek-v4.1-flash`,研究档位 quick,DuckDuckGo 独占渠道,未开事实核查,版式为“英文通用报告·品牌绿”,篇幅 500 / 650 词。需求用中文填写,只把报告语言设为英文。题目:2026 年 8 月中国新能源汽车出口。
|
|
308
|
+
|
|
309
|
+
同一配置先用 OpenCode 后端试跑,启动即失败,报错 `opencode serve 未就绪: Expecting value`(本机 opencode v2.0.14)。失败发生在本分支未改动的 OpenCode 宿主,未继续排查,记为环境问题。
|
|
310
|
+
|
|
311
|
+
结果:
|
|
312
|
+
|
|
313
|
+
- **成稿**:生成、评价和一次自动修订共约 21.5 分钟,登记来源 22 份。首稿评价为“建议修改”,列出两处引用挂错来源、一处无来源的盈利判断、一处 CPCA 口径量级未说明。修订稿评价为“达到要求”,剩余三处轻微问题,其中包括 CPCA 缩写首次出现未展开。
|
|
314
|
+
- **写作与记录**:正文、标题、表格和图注均为英文。CAAM 全口径与 CPCA 乘用车口径分开写,“52.6万辆”写作 526,000 units。research_notes 和评价说明仍为中文。
|
|
315
|
+
- **篇幅**:修订稿按词计 649,上限 650。
|
|
316
|
+
- **Word 导出**:来源、目录、页码均为英文标签。导出文件中仍有中文的只有两处:来源原标题(按设计保留),以及封面上按原文打印的时间范围——本次验收填写的是中文“2026 年 8 月”。据此在英文模式下给时间范围输入框加了提示,并更新了文档。
|
|
317
|
+
- **数值检查**:修订稿 16 条数值绑定中机械核对 4 条(百分比),全部一致;其余 12 条是车辆数量。本分支随后加入 units / vehicles / 辆 / 台及其量级,复核这份稿件时发现:正文用不带单位的表格数字引用“68,431 vehicles”时会被误判为“不一致”,而这一项会阻断正式交付。已改为:数值与绑定值相同、单位只在表头或上下文里时,记为“单位未机械核对”;真正的量级换算错误仍判为不一致。
|
|
318
|
+
|
|
319
|
+
本轮没有运行独立 Reviewer 或正式交付,也没有开事实核查。私有产物保存在 `~/Developer/briefloop-eval/english-report-20260925-9812347f-native/`,不进入 Git。
|
|
320
|
+
|
|
321
|
+
### 2026-09-26:英文报告合并前修复
|
|
322
|
+
|
|
323
|
+
修复上传模板没有语言提示、或清除模板选择时把英文改回中文的问题。只有模板明确声明支持的语言时才同步报告语言;保留旧任务 `English` / `中文` 的归一化。普通 Word 与模板 Word 的 renderer 缓存标识均已更新,避免旧英文任务继续下载带中文读者标签的历史导出。
|
|
324
|
+
|
|
325
|
+
回归检查实际保存了两条路径下完整且哈希有效的旧缓存 Word,再以同一稿件、来源、要求和模板重新导出。两条路径均建立新导出并显示 `Sources`,随后复用新缓存;原稿、保存要求及旧文件字节保持不变。原主干 36 个中文模板及其 spec 共 72 个文件逐一比对,字节完全不变,没有重新生成。
|
|
326
|
+
|
|
327
|
+
Windows CI 上次失败来自启动验收将模板数写死为 36,新包实际包含 46 个模板。本次改为读取已安装包的内置模板清单,并同时检查名称全集和英文模板的语言提示,避免仅放宽数量而遗漏新模板。
|
|
328
|
+
|
|
329
|
+
本地验证:英文与导出行为检查 **13 passed**;前端检查 **115 passed / 1 skipped**,跳过项为实际 Electron 剪贴板验收;前端构建、构建一致性和设计约束检查通过。Windows 原生检查须以本提交推送后的 CI 为准,Mac 上没有将跳过项记为通过。
|
|
330
|
+
|
|
331
|
+
修复提交 `8a8d8081` 的 [Windows 安装包检查](https://github.com/Stahl-G/briefloop/actions/runs/36236929080/job/108390296622) 随后通过。再接入包含 #794 / #800 的主干 `90994ff3`,保留 OfficeCLI 取消处理与原子预览缓存改动;唯一冲突为生成的前端 bundle,按合并后的源码重建。组合检查(英文、Word 导出、OfficeCLI)**33 passed**;前端 **117 passed / 1 skipped**,构建一致性和设计约束仍通过。集成提交的全量 CI 单独执行,不沿用前一个提交的成功状态。
|
|
332
|
+
|
|
333
|
+
本轮未调用真实模型、未重跑独立 Reviewer、事实核查或正式交付,也未修改旧验收原稿。上一节真实模型结果仍只对应 `9812347f`;其 OpenCode v2 启动失败是后端版本兼容问题的线索,不能仅凭该次报错断言网络或用户环境故障。
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
## 2026-09-26:OpenCode 双版本与审阅模式集成
|
|
337
|
+
|
|
338
|
+
OpenCode 2.0.14 不再使用 1.x 的健康、会话与模型目录协议。本次保留 v1 传输并增加独立 v2 适配,模型、variant、目录和权限需回读一致才发送任务;不存在的旧会话不自动重建。v2 的 Provider 配置仍在宿主内完成。实际供应方边界显示,v2 后续指令条目修改并不等价于 v1 每轮 system,因此已开始会话的系统约定变更须明确新建对话,不能静默替换或重发。
|
|
339
|
+
|
|
340
|
+
按用户最新决定,审阅拆分为默认普通模式与显式严格模式。Codex、OpenCode 两代、BriefLoop Agent 可提供普通独立只读审阅;只有当前核查包专用工具已落实的 BriefLoop Agent 声明严格隔离。OpenCode v1 同样自动发现全局/祖先指令,旧文档对其完整上下文隔离的描述已纠正。两种模式沿用同一证据、版本、重大问题及交付门禁,新任务记录实际模式;历史缺字段仍显示未记录,不回写为严格。
|
|
341
|
+
|
|
342
|
+
集成英文报告与 Excel 主干后,定向 Python 检查 236 通过,前端 125 通过、1 跳过,构建一致性与共享设计检查通过。检查包括模式/后端去重、严格不复用普通结果、旧会话恢复、定时触发时采用当前设置而入队后冻结、相同重大问题两模式均阻断、Codex 内部任务实际出站只读/禁网络参数,以及当前轮最终 JSON 与进度消息分开保存。没有把最终结构化回复接纳当成语义审阅通过。
|
|
343
|
+
|
|
344
|
+
实际 macOS OpenCode 1.18.31/2.0.14 与自建本地合成供应方验证了认证、High 参数、读取/写入拒绝、中文消息与用量投影、空闲取消和自有服务清理;另有 v2 Harness→ChatStore 闭环。没有读取用户凭据,没有外部模型调用。这些不是完整报告、多子 Agent、长任务取消或 Windows 桌面验收。
|
|
345
|
+
|
|
346
|
+
在独立、暂停任务派发的合成工作区通过 Chrome 实际验收:普通/严格保存及刷新保持、OpenCode 严格模式明确不可用且不自动换后端、手选 Native 严格模式、Codex 普通模式模型/档位文案与 High 实际保存。工作区任务数为 0,没有触发模型审阅。冷启动的模型目录跨快照异常另行修复并保留初次失败观察。
|
|
347
|
+
|
|
348
|
+
目录修复后另跑 12 项协议检查通过(含首次不一致恢复与持续不一致拒绝)。真实 v2 冷启动公开目录顺序观测为 0 个 Provider → 494 个模型 → 4 个 Provider → 425 个模型;适配器完整重读一次后返回一致的 4 个 Provider / 425 个模型及公开档位,没有过滤丢模型或臆造 Provider,没有发送模型任务。
|
|
349
|
+
|
|
350
|
+
## 2026-09-26:0.25.0 Issue 收口与发行准备
|
|
351
|
+
|
|
352
|
+
- #730 补齐欧元/英镑、数量级股份、质量和电量单位;保留币种、功率/电量及百分比/百分点边界,不做汇率换算。SI 符号保留大小写,mWh/MWh、mW/MW、t/T 不会相互通过;非法或未知单位仍未检查。数值、覆盖、英文报告与软目标用时相关67项通过。
|
|
353
|
+
- #729 修复旧排队/运行任务被最近30条历史挤出;只限制非活跃历史,任务去重与排序保留。相关派发、取消恢复、正文按需、stdin、PDF缓存及导出行为16项通过。Issue中的完整列表分页和100/1000报告基准仍待做,不标全部完成。
|
|
354
|
+
- 前端125项通过、1项跳过;桌面70项通过、4项跳过;前端构建/共享设计及源码版本一致性检查通过。此处是源码候选验证,最终冻结提交、实际安装包、Mac原生运行和公开渠道校验随0.25.0发行记录保存,不将本段当作发行已经成功。
|
|
355
|
+
- #758/#759/#762作为已写成的研究归档和交接备忘结案,后续阈值、对照与独立验证仍在#760/#761/#763。#728/#729/#731/#732/#734/#736/#757/#764仍保留未完成验收或实施项。Windows原生验收不可用,0.25.0 Windows安装包暂缓;Mac本轮没有Developer ID签名或Apple公证。
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// App updates: fixed desktop capabilities, with a read-only browser fallback.
|
|
2
|
+
import {$} from './dom.js';
|
|
3
|
+
export function appUpdatesUI({api,notice}){
|
|
4
|
+
let appUpdateState=null,softwareInfo=null,appUpdatePending=false,appUpdateLastAction='check';
|
|
5
|
+
function renderAppUpdates(value=appUpdateState){
|
|
6
|
+
const box=$('settings-view-updates');if(!box)return;
|
|
7
|
+
const desktop=typeof window.briefloopDesktop?.updateStatus==='function';
|
|
8
|
+
$('app-update-controls').hidden=false;
|
|
9
|
+
$('app-update-version').textContent=softwareInfo?`BriefLoop v${softwareInfo.version}${softwareInfo.build?` · 构建 ${softwareInfo.build}`:''}${desktop?` · 桌面 App v${value?.currentAppVersion||'读取中'}`:''}`:'正在读取实际运行版本…';
|
|
10
|
+
const installations={desktop:'桌面管理的后端 · App 与 CLI 共用',source:'开发源码',pip:'Python 包安装',pipx:'pipx 安装',uv:'uv 工具安装'};
|
|
11
|
+
$('app-update-installation').textContent=softwareInfo?installations[softwareInfo.installation]||'独立安装':'';
|
|
12
|
+
$('app-update-command').hidden=!softwareInfo?.update_command;
|
|
13
|
+
$('app-update-command').textContent=softwareInfo?.update_command||'';
|
|
14
|
+
$('app-update-source').textContent=value?.source==='local-test'?'本地测试更新源 · 仅验证流程,不代表官方发布':desktop?'官方稳定来源:Stahl-G/briefloop · GitHub Releases':'Python 包稳定来源:PyPI · briefloop';
|
|
15
|
+
const reinstall=value?.source==='local-test'&&value?.reinstall===true;
|
|
16
|
+
$('app-update-guidance').textContent=!desktop?(softwareInfo?.guidance||'正在读取安装来源…'):value?.installMode==='zip'?'优先增量下载 ZIP 更新包并校验完整文件。保存并退出后打开 Finder;将 BriefLoop 拖到 Applications 替换,再重新启动。':value?.installMode==='dmg'?`下载后会先保存编辑并处理忙任务,再退出 App、打开 DMG;请在 Finder 中${reinstall?'重新安装当前版本':'手动安装新版本'}。`:'下载后会先保存编辑并处理忙任务,再退出 App 并交给原生安装器更新。';
|
|
17
|
+
const errorOperation=value?.error?.operation||(value?.error?.code==='open_failed'?'install':appUpdateLastAction);
|
|
18
|
+
const errorLabel={check:'更新检查失败(当前安装不受影响)',download:'更新包下载未完成',install:'更新安装未完成'}[errorOperation]||'更新检查失败(当前安装不受影响)';
|
|
19
|
+
const labels={idle:'尚未检查更新',checking:'正在检查更新…',available:'发现可用更新',current:'当前 App 无需更新',downloading:'正在下载更新…',downloaded:'下载完成,等待安装',error:errorLabel};
|
|
20
|
+
const reinstallLabel=`重新安装当前 App v${value?.currentAppVersion||''}`;
|
|
21
|
+
$('app-update-status').textContent=desktop?(reinstall&&value?.state==='available'?reinstallLabel:(labels[value?.state]||'正在读取 App 版本…')+(value?.state==='error'&&errorOperation==='check'?'':reinstall?` · ${reinstallLabel}`:value?.releaseVersion?` · v${value.releaseVersion}`:'')):({idle:'尚未检查更新',checking:'正在检查更新…',available:`发现可用后端版本 v${value?.releaseVersion||''}`,current:'当前后端已是 PyPI 最新稳定版',ahead:`当前后端高于 PyPI 已发布版本 v${value?.releaseVersion||''}`,error:'版本检查未完成'}[value?.state||'idle']||'尚未检查更新');
|
|
22
|
+
$('app-update-download').textContent=reinstall?'下载当前版本安装包':'下载更新';
|
|
23
|
+
const busy=appUpdatePending||['checking','downloading'].includes(value?.state);
|
|
24
|
+
$('app-update-check').disabled=busy;
|
|
25
|
+
$('app-update-download').hidden=!desktop||value?.state!=='available';$('app-update-download').disabled=busy;
|
|
26
|
+
$('app-update-install').hidden=!desktop||value?.state!=='downloaded';$('app-update-install').disabled=busy;
|
|
27
|
+
$('app-update-install').textContent=value?.installMode==='zip'?'保存并打开更新文件夹':value?.installMode==='dmg'?'保存并打开 DMG':'保存并安装更新';
|
|
28
|
+
$('app-update-retry').hidden=value?.state!=='error'||!value?.retryable;$('app-update-retry').disabled=busy;
|
|
29
|
+
$('app-update-error').hidden=!value?.error;$('app-update-error').textContent=value?.error?.message||'';
|
|
30
|
+
const progress=value?.progress;
|
|
31
|
+
$('app-update-progress-box').hidden=!progress;
|
|
32
|
+
$('app-update-progress').value=progress?.percent||0;
|
|
33
|
+
$('app-update-progress-text').textContent=progress?`${Math.round(progress.percent||0)}% · ${(Math.max(0,progress.transferred||0)/1048576).toFixed(1)} / ${(Math.max(0,progress.total||0)/1048576).toFixed(1)} MiB`:'';
|
|
34
|
+
if(progress?.mode==='differential')$('app-update-progress-text').textContent+=` · 增量下载,复用 ${(Math.max(0,progress.reused||0)/1048576).toFixed(1)} MiB`;
|
|
35
|
+
else if(progress?.mode==='full')$('app-update-progress-text').textContent+=' · '+({
|
|
36
|
+
no_baseline:'无有效基准缓存,完整下载并建立缓存',
|
|
37
|
+
little_reuse:'本次可复用内容较少,完整下载',
|
|
38
|
+
range_unavailable:'下载服务不支持分段传输,完整下载',
|
|
39
|
+
range_size:'分段响应不完整,重新完整下载',
|
|
40
|
+
delta_hash:'增量重建校验失败,重新完整下载',
|
|
41
|
+
differential_unavailable:'增量不可用,已回退完整下载',
|
|
42
|
+
blockmap_unavailable:'此版本无可用增量信息,完整下载'
|
|
43
|
+
}[progress.fallback]||'完整下载');
|
|
44
|
+
$('app-update-notes-box').hidden=!value?.notes;$('app-update-notes').textContent=value?.notes||'';
|
|
45
|
+
}
|
|
46
|
+
async function refreshAppUpdates(){
|
|
47
|
+
renderAppUpdates();
|
|
48
|
+
try{softwareInfo=await api('software-version');
|
|
49
|
+
if(typeof window.briefloopDesktop?.updateStatus==='function')appUpdateState=await window.briefloopDesktop.updateStatus();
|
|
50
|
+
renderAppUpdates()}
|
|
51
|
+
catch{notice('无法读取 App 更新状态,请重新打开设置。',true)}
|
|
52
|
+
}
|
|
53
|
+
async function runAppUpdate(command){
|
|
54
|
+
if(appUpdatePending)return;
|
|
55
|
+
const desktop=window.briefloopDesktop;
|
|
56
|
+
if(typeof desktop?.updateStatus!=='function'){
|
|
57
|
+
if(command!=='check')return;
|
|
58
|
+
appUpdatePending=true;appUpdateState={state:'checking'};renderAppUpdates();
|
|
59
|
+
try{appUpdateState=await api('software-update-check',{});softwareInfo=appUpdateState}
|
|
60
|
+
catch(error){appUpdateState={state:'error',retryable:true,error:{message:error.message||'版本检查未完成'}}}
|
|
61
|
+
finally{appUpdatePending=false;renderAppUpdates()}
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
appUpdatePending=true;appUpdateLastAction=command;renderAppUpdates();
|
|
65
|
+
try{
|
|
66
|
+
if(command==='install'){
|
|
67
|
+
const result=await desktop.installUpdate();
|
|
68
|
+
if(result?.cancelled)notice('已保留当前工作区,更新包仍可稍后安装。');
|
|
69
|
+
// Successful installation closes this renderer. A cancelled gate keeps it live.
|
|
70
|
+
if(result?.cancelled)appUpdateState=await desktop.updateStatus();
|
|
71
|
+
}else appUpdateState=await (command==='download'?desktop.downloadUpdate():desktop.checkForUpdates());
|
|
72
|
+
}catch(error){
|
|
73
|
+
notice(error.message||'更新操作未完成,请重试。',true);
|
|
74
|
+
try{appUpdateState=await desktop.updateStatus()}catch{}
|
|
75
|
+
}finally{appUpdatePending=false;renderAppUpdates()}
|
|
76
|
+
}
|
|
77
|
+
function init(){
|
|
78
|
+
if($('settings-view-updates')){
|
|
79
|
+
$('app-update-check').onclick=()=>runAppUpdate('check');
|
|
80
|
+
$('app-update-download').onclick=()=>runAppUpdate('download');
|
|
81
|
+
$('app-update-install').onclick=()=>runAppUpdate('install');
|
|
82
|
+
// A temporary DMG open error can retry the saved asset through the same gate.
|
|
83
|
+
$('app-update-retry').onclick=()=>runAppUpdate(appUpdateState?.error?.code==='open_failed'?'install':(appUpdateState?.error?.operation||appUpdateLastAction)==='install'?'download':appUpdateState?.error?.operation||appUpdateLastAction);
|
|
84
|
+
window.briefloopDesktop?.onUpdateStatus?.(value=>{appUpdateState=value;renderAppUpdates()});
|
|
85
|
+
renderAppUpdates();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return {init,renderAppUpdates,refreshAppUpdates,runAppUpdate};
|
|
89
|
+
}
|
|
90
|
+
// End App updates.
|