@huicai/cli 2026.814.0 → 2026.1019.0
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.
- package/LICENSE +391 -32
- package/README.md +137 -8
- package/bin/huicai.js +146 -73
- package/package.json +27 -8
- package/skills/ab-testing/trigger-cases.json +30 -0
- package/skills/academic-writing/trigger-cases.json +30 -0
- package/skills/accounting-ops/trigger-cases.json +30 -0
- package/skills/ai-agent/trigger-cases.json +30 -0
- package/skills/ai-aiops/trigger-cases.json +30 -0
- package/skills/ai-coding/trigger-cases.json +30 -0
- package/skills/ai-compliance/trigger-cases.json +30 -0
- package/skills/ai-eval/trigger-cases.json +30 -0
- package/skills/ai-llm-app/trigger-cases.json +30 -0
- package/skills/ai-mlops/trigger-cases.json +30 -0
- package/skills/ai-multimodal/trigger-cases.json +30 -0
- package/skills/ai-prompt/trigger-cases.json +30 -0
- package/skills/ai-rag/trigger-cases.json +30 -0
- package/skills/anomaly-detection/trigger-cases.json +30 -0
- package/skills/api-design/trigger-cases.json +31 -0
- package/skills/api-integration/trigger-cases.json +31 -0
- package/skills/arch-design/trigger-cases.json +12 -0
- package/skills/arch-diagram/SKILL.md +118 -0
- package/skills/arch-diagram/trigger-cases.json +30 -0
- package/skills/arch-distributed/trigger-cases.json +30 -0
- package/skills/arch-multitenant/trigger-cases.json +30 -0
- package/skills/audio-brief/SKILL.md +65 -0
- package/skills/audio-brief/trigger-cases.json +30 -0
- package/skills/audit-assist/trigger-cases.json +30 -0
- package/skills/audit-chain/trigger-cases.json +31 -0
- package/skills/banking-credit/trigger-cases.json +30 -0
- package/skills/brand-design/trigger-cases.json +30 -0
- package/skills/business-plan/trigger-cases.json +30 -0
- package/skills/capital-ops/trigger-cases.json +30 -0
- package/skills/cicd-pipeline/trigger-cases.json +31 -0
- package/skills/code-archaeology/SKILL.md +55 -0
- package/skills/code-archaeology/trigger-cases.json +9 -0
- package/skills/code-quality/SKILL.md +138 -0
- package/skills/code-quality/references/languages.md +107 -0
- package/skills/code-quality/scripts/__pycache__/code_battery.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_check.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_check.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_csharp.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_csharp.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_fix.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_fix.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_java.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_java.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_jsts.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_jsts.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_lens.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_lens.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_python.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_python.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_testplan.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/code_battery.py +1072 -0
- package/skills/code-quality/scripts/code_check.py +1269 -0
- package/skills/code-quality/scripts/code_csharp.py +371 -0
- package/skills/code-quality/scripts/code_fix.py +201 -0
- package/skills/code-quality/scripts/code_java.py +695 -0
- package/skills/code-quality/scripts/code_jsts.py +313 -0
- package/skills/code-quality/scripts/code_lens.py +1079 -0
- package/skills/code-quality/scripts/code_python.py +536 -0
- package/skills/code-quality/scripts/code_testplan.py +239 -0
- package/skills/code-quality/trigger-cases.json +45 -0
- package/skills/code-review/SKILL.md +24 -0
- package/skills/code-review/trigger-cases.json +35 -0
- package/skills/commit-and-pr/trigger-cases.json +31 -0
- package/skills/content-creation/trigger-cases.json +30 -0
- package/skills/corporate-governance/trigger-cases.json +30 -0
- package/skills/crawl-chain/trigger-cases.json +31 -0
- package/skills/customer-service/trigger-cases.json +30 -0
- package/skills/data-analysis/trigger-cases.json +30 -0
- package/skills/data-chain/SKILL.md +1 -1
- package/skills/data-chain/trigger-cases.json +31 -0
- package/skills/data-governance/trigger-cases.json +30 -0
- package/skills/data-report-pro/trigger-cases.json +30 -0
- package/skills/data-streaming/trigger-cases.json +30 -0
- package/skills/data-wrangling/SKILL.md +1 -1
- package/skills/data-wrangling/trigger-cases.json +30 -0
- package/skills/db-es/trigger-cases.json +30 -0
- package/skills/db-migration/trigger-cases.json +30 -0
- package/skills/db-mysql/trigger-cases.json +30 -0
- package/skills/db-postgres/trigger-cases.json +30 -0
- package/skills/db-redis/trigger-cases.json +30 -0
- package/skills/debug-root-cause/trigger-cases.json +30 -0
- package/skills/dependency-audit/SKILL.md +56 -0
- package/skills/dependency-audit/trigger-cases.json +7 -0
- package/skills/dependency-upgrade/trigger-cases.json +31 -0
- package/skills/dev-cpp/trigger-cases.json +30 -0
- package/skills/dev-cross-platform/trigger-cases.json +30 -0
- package/skills/dev-csharp/SKILL.md +23 -0
- package/skills/dev-csharp/trigger-cases.json +30 -0
- package/skills/dev-frontend/SKILL.md +19 -0
- package/skills/dev-frontend/trigger-cases.json +30 -0
- package/skills/dev-go/trigger-cases.json +30 -0
- package/skills/dev-harmony/trigger-cases.json +30 -0
- package/skills/dev-java/SKILL.md +20 -0
- package/skills/dev-java/trigger-cases.json +30 -0
- package/skills/dev-mobile/trigger-cases.json +30 -0
- package/skills/dev-node/trigger-cases.json +30 -0
- package/skills/dev-php/trigger-cases.json +30 -0
- package/skills/dev-python/SKILL.md +21 -0
- package/skills/dev-python/trigger-cases.json +30 -0
- package/skills/dev-rust/trigger-cases.json +30 -0
- package/skills/dev-toolchain/trigger-cases.json +31 -0
- package/skills/doc-chain/trigger-cases.json +31 -0
- package/skills/doc-compare/trigger-cases.json +30 -0
- package/skills/docx-author/SKILL.md +127 -25
- package/skills/docx-author/scripts/__pycache__/docx_battery.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/docx_build.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/docx_check.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/docx_layout.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/zh_prose.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/docx_battery.py +586 -0
- package/skills/docx-author/scripts/docx_build.py +995 -0
- package/skills/docx-author/scripts/docx_check.py +1306 -0
- package/skills/docx-author/scripts/docx_doc.py +14 -154
- package/skills/docx-author/scripts/docx_layout.py +490 -0
- package/skills/docx-author/scripts/zh_prose.py +639 -0
- package/skills/docx-author/trigger-cases.json +58 -0
- package/skills/echo-brief/SKILL.md +84 -0
- package/skills/echo-brief/references/echo-format.md +68 -0
- package/skills/echo-brief/trigger-cases.json +40 -0
- package/skills/ecommerce-ops/trigger-cases.json +30 -0
- package/skills/education-training/trigger-cases.json +30 -0
- package/skills/ehs-safety/trigger-cases.json +30 -0
- package/skills/email-writing/trigger-cases.json +30 -0
- package/skills/eng-ai/trigger-cases.json +30 -0
- package/skills/eng-architecture/trigger-cases.json +31 -0
- package/skills/eng-automation/trigger-cases.json +31 -0
- package/skills/eng-collaboration/trigger-cases.json +30 -0
- package/skills/eng-complex-env/trigger-cases.json +30 -0
- package/skills/eng-data-platform/trigger-cases.json +31 -0
- package/skills/eng-database/trigger-cases.json +31 -0
- package/skills/eng-develop/trigger-cases.json +30 -0
- package/skills/eng-docs/SKILL.md +24 -0
- package/skills/eng-docs/trigger-cases.json +30 -0
- package/skills/eng-efficiency/trigger-cases.json +30 -0
- package/skills/eng-infra/trigger-cases.json +30 -0
- package/skills/eng-integration/trigger-cases.json +31 -0
- package/skills/eng-legacy/trigger-cases.json +31 -0
- package/skills/eng-observability/trigger-cases.json +31 -0
- package/skills/eng-ops/trigger-cases.json +31 -0
- package/skills/eng-performance/trigger-cases.json +31 -0
- package/skills/eng-planning/trigger-cases.json +31 -0
- package/skills/eng-quality/SKILL.md +8 -0
- package/skills/eng-quality/trigger-cases.json +31 -0
- package/skills/eng-release/trigger-cases.json +31 -0
- package/skills/eng-reliability/trigger-cases.json +31 -0
- package/skills/eng-requirements/trigger-cases.json +12 -0
- package/skills/eng-research/trigger-cases.json +30 -0
- package/skills/eng-security/trigger-cases.json +31 -0
- package/skills/eng-ux/trigger-cases.json +30 -0
- package/skills/engineering-chain/trigger-cases.json +30 -0
- package/skills/env-offline/trigger-cases.json +31 -0
- package/skills/env-private-deploy/trigger-cases.json +31 -0
- package/skills/env-xinchuang/trigger-cases.json +31 -0
- package/skills/equipment-tpm/trigger-cases.json +30 -0
- package/skills/esg-report/trigger-cases.json +30 -0
- package/skills/event-management/trigger-cases.json +30 -0
- package/skills/excel-analysis-chain/SKILL.md +17 -4
- package/skills/excel-analysis-chain/trigger-cases.json +31 -0
- package/skills/explain-codebase/trigger-cases.json +11 -0
- package/skills/file-ingest/trigger-cases.json +30 -0
- package/skills/finance-analysis/trigger-cases.json +31 -0
- package/skills/finance-chain/trigger-cases.json +31 -0
- package/skills/financial-modeling/trigger-cases.json +31 -0
- package/skills/find-simplifications/SKILL.md +43 -0
- package/skills/find-simplifications/trigger-cases.json +23 -0
- package/skills/foreign-trade/trigger-cases.json +30 -0
- package/skills/funnel-cohort/trigger-cases.json +30 -0
- package/skills/gov-document/trigger-cases.json +30 -0
- package/skills/gui-change-evidence/SKILL.md +47 -0
- package/skills/gui-change-evidence/trigger-cases.json +23 -0
- package/skills/hr-chain/trigger-cases.json +31 -0
- package/skills/hr-operations/trigger-cases.json +30 -0
- package/skills/info-disclosure/trigger-cases.json +31 -0
- package/skills/infra-gateway/trigger-cases.json +31 -0
- package/skills/infra-k8s/trigger-cases.json +31 -0
- package/skills/infra-mq/trigger-cases.json +30 -0
- package/skills/insurance-advisory/trigger-cases.json +30 -0
- package/skills/internal-audit/trigger-cases.json +30 -0
- package/skills/ip-management/trigger-cases.json +31 -0
- package/skills/ipo-listing/trigger-cases.json +31 -0
- package/skills/it-audit/trigger-cases.json +31 -0
- package/skills/itsm-ops/trigger-cases.json +31 -0
- package/skills/knowledge-sop/trigger-cases.json +31 -0
- package/skills/legal-chain/trigger-cases.json +31 -0
- package/skills/legal-contract/trigger-cases.json +30 -0
- package/skills/litigation-support/trigger-cases.json +31 -0
- package/skills/logistics-warehouse/trigger-cases.json +30 -0
- package/skills/long-doc-analysis/trigger-cases.json +31 -0
- package/skills/management-accounting/trigger-cases.json +30 -0
- package/skills/manufacturing-chain/trigger-cases.json +31 -0
- package/skills/manufacturing-quality/trigger-cases.json +30 -0
- package/skills/marketing-analytics/trigger-cases.json +31 -0
- package/skills/marketing-chain/trigger-cases.json +31 -0
- package/skills/meeting-minutes/trigger-cases.json +30 -0
- package/skills/metrics-system/trigger-cases.json +31 -0
- package/skills/negotiation-prep/trigger-cases.json +30 -0
- package/skills/obs-prometheus/trigger-cases.json +31 -0
- package/skills/office-automation/trigger-cases.json +31 -0
- package/skills/okr-review/trigger-cases.json +30 -0
- package/skills/ops-fleet/trigger-cases.json +31 -0
- package/skills/ops-linux/trigger-cases.json +31 -0
- package/skills/optimization-solver/trigger-cases.json +30 -0
- package/skills/patent-disclosure/SKILL.md +105 -0
- package/skills/patent-disclosure/references/figures.md +110 -0
- package/skills/patent-disclosure/references/outline.md +162 -0
- package/skills/patent-disclosure/scripts/patent_docx.py +230 -0
- package/skills/patent-disclosure/trigger-cases.json +31 -0
- package/skills/patent-drafting/SKILL.md +108 -0
- package/skills/patent-drafting/trigger-cases.json +31 -0
- package/skills/patent-portfolio/SKILL.md +81 -0
- package/skills/patent-portfolio/trigger-cases.json +31 -0
- package/skills/pdf-toolkit/trigger-cases.json +31 -0
- package/skills/perf-optimize/trigger-cases.json +31 -0
- package/skills/pivot-crosstab/trigger-cases.json +30 -0
- package/skills/policy-analysis/trigger-cases.json +31 -0
- package/skills/portfolio-analysis/trigger-cases.json +31 -0
- package/skills/ppt-chain/SKILL.md +14 -6
- package/skills/ppt-chain/trigger-cases.json +31 -0
- package/skills/pptx-author/SKILL.md +86 -33
- package/skills/pptx-author/scripts/__pycache__/pptx_check.cpython-312.pyc +0 -0
- package/skills/pptx-author/scripts/__pycache__/pptx_deck.cpython-312.pyc +0 -0
- package/skills/pptx-author/scripts/__pycache__/pptx_layout.cpython-312.pyc +0 -0
- package/skills/pptx-author/scripts/pptx_battery.py +178 -0
- package/skills/pptx-author/scripts/pptx_build.py +119 -0
- package/skills/pptx-author/scripts/pptx_check.py +1182 -0
- package/skills/pptx-author/scripts/pptx_deck.py +736 -145
- package/skills/pptx-author/scripts/pptx_layout.py +384 -0
- package/skills/pptx-author/trigger-cases.json +15 -0
- package/skills/pr-comms/trigger-cases.json +30 -0
- package/skills/procurement-supply/trigger-cases.json +31 -0
- package/skills/product-design/trigger-cases.json +31 -0
- package/skills/production-planning/trigger-cases.json +31 -0
- package/skills/project-management/trigger-cases.json +31 -0
- package/skills/project-proposal/trigger-cases.json +31 -0
- package/skills/prose-standard/SKILL.md +53 -0
- package/skills/prose-standard/trigger-cases.json +23 -0
- package/skills/qa-api-automation/trigger-cases.json +31 -0
- package/skills/qa-mobile-automation/trigger-cases.json +31 -0
- package/skills/qa-ui-automation/trigger-cases.json +31 -0
- package/skills/quant-analysis/trigger-cases.json +31 -0
- package/skills/rag-triage/SKILL.md +64 -0
- package/skills/rag-triage/evals.json +57 -0
- package/skills/rag-triage/references/triage-playbook.md +75 -0
- package/skills/rag-triage/trigger-cases.json +31 -0
- package/skills/real-estate-property/trigger-cases.json +30 -0
- package/skills/refactor-safely/SKILL.md +1 -1
- package/skills/refactor-safely/trigger-cases.json +30 -0
- package/skills/regression-forecast/trigger-cases.json +31 -0
- package/skills/release-checklist/trigger-cases.json +31 -0
- package/skills/report-craft/SKILL.md +76 -0
- package/skills/report-craft/references/feasibility.md +118 -0
- package/skills/report-craft/references/review-checklist.md +51 -0
- package/skills/report-craft/references/visuals.md +114 -0
- package/skills/report-craft/references/writing.md +80 -0
- package/skills/report-craft/scripts/__pycache__/chart_render.cpython-312.pyc +0 -0
- package/skills/report-craft/scripts/__pycache__/fin_model.cpython-312.pyc +0 -0
- package/skills/report-craft/scripts/__pycache__/project_facts.cpython-312.pyc +0 -0
- package/skills/report-craft/scripts/chart_render.py +1222 -0
- package/skills/report-craft/scripts/fin_model.py +602 -0
- package/skills/report-craft/scripts/project_facts.py +580 -0
- package/skills/report-craft/scripts/report_battery.py +349 -0
- package/skills/report-craft/trigger-cases.json +15 -0
- package/skills/retail-store-ops/trigger-cases.json +30 -0
- package/skills/risk-compliance/trigger-cases.json +31 -0
- package/skills/scope-creep/SKILL.md +45 -0
- package/skills/scope-creep/trigger-cases.json +7 -0
- package/skills/sec-auth/trigger-cases.json +31 -0
- package/skills/sec-compliance/trigger-cases.json +31 -0
- package/skills/securities-chain/trigger-cases.json +31 -0
- package/skills/securities-research/trigger-cases.json +31 -0
- package/skills/security-audit/trigger-cases.json +31 -0
- package/skills/slides-html/SKILL.md +25 -10
- package/skills/slides-html/trigger-cases.json +11 -0
- package/skills/sql-analysis/SKILL.md +110 -0
- package/skills/sql-analysis/trigger-cases.json +34 -0
- package/skills/sql-tuning/trigger-cases.json +31 -0
- package/skills/statistical-testing/trigger-cases.json +31 -0
- package/skills/strategy-planning/trigger-cases.json +30 -0
- package/skills/supply-chain/trigger-cases.json +31 -0
- package/skills/tax-compliance/trigger-cases.json +30 -0
- package/skills/tech-doc/SKILL.md +262 -0
- package/skills/tech-doc/scripts/__pycache__/archive_battery.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/archive_build.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/archive_check.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/archive_spec.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/doc_templates.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/archive_battery.py +860 -0
- package/skills/tech-doc/scripts/archive_build.py +599 -0
- package/skills/tech-doc/scripts/archive_check.py +1307 -0
- package/skills/tech-doc/scripts/archive_spec.py +499 -0
- package/skills/tech-doc/scripts/doc_templates.py +624 -0
- package/skills/tech-doc/trigger-cases.json +57 -0
- package/skills/tech-research/trigger-cases.json +31 -0
- package/skills/tender-bidding/trigger-cases.json +31 -0
- package/skills/translation-pro/trigger-cases.json +30 -0
- package/skills/treasury-mgmt/trigger-cases.json +31 -0
- package/skills/trim-cot-leakage/SKILL.md +58 -0
- package/skills/trim-cot-leakage/trigger-cases.json +23 -0
- package/skills/web-craft/SKILL.md +103 -0
- package/skills/web-craft/references/craft-checklist.md +75 -0
- package/skills/web-craft/references/design-direction.md +122 -0
- package/skills/web-craft/references/h5-mobile.md +100 -0
- package/skills/web-craft/references/motion.md +136 -0
- package/skills/web-craft/references/recipes.md +74 -0
- package/skills/web-craft/templates/wedding-invitation.html +1180 -0
- package/skills/web-craft/trigger-cases.json +14 -0
- package/skills/web-scraping/trigger-cases.json +34 -0
- package/skills/web-search/SKILL.md +11 -10
- package/skills/web-search/trigger-cases.json +31 -0
- package/skills/weekly-report/SKILL.md +134 -0
- package/skills/weekly-report/trigger-cases.json +11 -0
- package/skills/write-tests/trigger-cases.json +31 -0
- package/skills/xlsx-analysis/SKILL.md +143 -77
- package/skills/xlsx-analysis/scripts/__pycache__/data_profile.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_build.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_check.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_layout.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_toolkit.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/data_profile.py +391 -0
- package/skills/xlsx-analysis/scripts/xlsx_battery.py +389 -0
- package/skills/xlsx-analysis/scripts/xlsx_build.py +522 -0
- package/skills/xlsx-analysis/scripts/xlsx_check.py +924 -0
- package/skills/xlsx-analysis/scripts/xlsx_layout.py +235 -0
- package/skills/xlsx-analysis/scripts/xlsx_style.py +28 -66
- package/skills/xlsx-analysis/scripts/xlsx_toolkit.py +61 -5
- package/skills/xlsx-analysis/trigger-cases.json +59 -0
- package/squads/hc-defense.md +47 -0
- package/squads/hc-rdarchive.md +110 -0
- package/squads/hc-redteam.md +50 -0
- package/squads/hc-weekly.md +125 -0
- package/src/account.js +1 -1
- package/src/acp.js +1 -0
- package/src/advisor.js +1 -1
- package/src/agent.js +1 -1
- package/src/api.js +1 -1
- package/src/archaeology.js +1 -0
- package/src/ask-ui.js +1 -0
- package/src/assets-import.js +1 -1
- package/src/autofix.js +1 -1
- package/src/automation-tools.js +1 -1
- package/src/automation.js +1 -1
- package/src/autorun.js +1 -1
- package/src/banner.js +1 -1
- package/src/capability-probe.js +1 -0
- package/src/checkpoints.js +1 -1
- package/src/code-tools.js +1 -0
- package/src/codeindex.js +1 -1
- package/src/codemode.js +1 -0
- package/src/command-bridge.js +1 -0
- package/src/command-ui.js +1 -0
- package/src/commands.js +1 -1
- package/src/compaction.js +1 -1
- package/src/computer.js +1 -1
- package/src/config.js +1 -1
- package/src/consult.js +1 -1
- package/src/context-report.js +1 -1
- package/src/context-window.js +1 -0
- package/src/context.js +1 -1
- package/src/crew.js +1 -0
- package/src/crush.js +1 -0
- package/src/daemon.js +1 -1
- package/src/decisions.js +1 -1
- package/src/depaudit.js +1 -0
- package/src/device.js +1 -1
- package/src/diagram-draw.js +1 -0
- package/src/diagram-layouts.js +1 -0
- package/src/diagram-raster.js +1 -0
- package/src/diagram.js +1 -0
- package/src/dictation.js +1 -0
- package/src/diffview.js +1 -1
- package/src/doctor.js +1 -1
- package/src/docx-tools.js +1 -0
- package/src/errkind.js +1 -1
- package/src/evidence.js +1 -0
- package/src/executors.js +1 -1
- package/src/expert-catalog.js +1 -1
- package/src/experts-store.js +1 -1
- package/src/experts.js +1 -1
- package/src/external-agents.js +1 -0
- package/src/forks.js +1 -1
- package/src/fs-observe.js +1 -0
- package/src/gitflow.js +1 -1
- package/src/goalround.js +1 -0
- package/src/hooks.js +1 -1
- package/src/input.js +1 -1
- package/src/insights.js +1 -1
- package/src/jobs.js +1 -0
- package/src/kbsync.js +1 -1
- package/src/lsp.js +1 -0
- package/src/mcp-apps.js +1 -0
- package/src/mcp.js +1 -1
- package/src/memory.js +1 -1
- package/src/notify.js +1 -1
- package/src/permissions.js +1 -1
- package/src/plan-limits.js +1 -0
- package/src/policy.js +1 -0
- package/src/pptx-tools.js +1 -0
- package/src/presence.js +1 -1
- package/src/privatedir.js +1 -0
- package/src/pyruntime.js +1 -1
- package/src/radar.js +1 -0
- package/src/render.js +1 -1
- package/src/repl.js +1 -1
- package/src/report-tools.js +1 -0
- package/src/routing.js +1 -0
- package/src/sandbox-probe.js +1 -0
- package/src/sandbox-win-launcher.mjs +156 -0
- package/src/sandbox.js +1 -0
- package/src/scan.js +1 -1
- package/src/schedule.js +1 -1
- package/src/scopecreep.js +1 -0
- package/src/sdk.js +1 -0
- package/src/selection.js +1 -0
- package/src/session-events.js +1 -0
- package/src/session.js +1 -1
- package/src/sessionindex.js +1 -0
- package/src/sessionlog.js +1 -0
- package/src/skill-catalog.js +1 -0
- package/src/skill-lint.js +1 -0
- package/src/skill-optimize.js +1 -0
- package/src/skill-scan.js +1 -0
- package/src/skills.js +1 -1
- package/src/spill.js +1 -0
- package/src/squad.js +1 -1
- package/src/subagent.js +1 -1
- package/src/surface-state.js +1 -0
- package/src/tapd.js +1 -0
- package/src/terminal-select.js +1 -0
- package/src/terminal.js +1 -0
- package/src/test-runner.js +1 -0
- package/src/todo.js +1 -1
- package/src/toolpipe.js +1 -0
- package/src/tools.js +1 -1
- package/src/toon.js +1 -0
- package/src/transcript.js +1 -1
- package/src/tui/app.js +1 -1
- package/src/tui/command-menu.js +1 -0
- package/src/tui/progress.js +1 -0
- package/src/tui/scroll.js +1 -0
- package/src/tui/welcome.js +1 -0
- package/src/tui/workbench.js +1 -0
- package/src/ui-spec.js +1 -0
- package/src/uitree.js +1 -0
- package/src/uninstall.js +1 -1
- package/src/visual.js +1 -1
- package/src/voice-form.js +1 -0
- package/src/voice.js +1 -0
- package/src/watch.js +1 -1
- package/src/web-audit.js +1 -0
- package/src/web-cdp.js +1 -0
- package/src/web-inspect.js +1 -0
- package/src/websearch.js +1 -0
- package/src/weekly.js +1 -0
- package/src/workflow.js +1 -0
- package/src/worklog.js +1 -0
- package/src/xlsx-tools.js +1 -0
- package/ui/command-picker.js +79 -0
- package/skills/ab-testing/scripts/__pycache__/ab_test.cpython-312.pyc +0 -0
- package/skills/accounting-ops/scripts/__pycache__/acct_tools.cpython-312.pyc +0 -0
- package/skills/anomaly-detection/scripts/__pycache__/anomaly.cpython-312.pyc +0 -0
- package/skills/audit-assist/scripts/__pycache__/audit_sampling.cpython-312.pyc +0 -0
- package/skills/banking-credit/scripts/__pycache__/credit_metrics.cpython-312.pyc +0 -0
- package/skills/data-report-pro/scripts/__pycache__/bigdata.cpython-312.pyc +0 -0
- package/skills/data-wrangling/scripts/__pycache__/join_tools.cpython-312.pyc +0 -0
- package/skills/ecommerce-ops/scripts/__pycache__/gmv_decompose.cpython-312.pyc +0 -0
- package/skills/funnel-cohort/scripts/__pycache__/funnel.cpython-312.pyc +0 -0
- package/skills/management-accounting/scripts/__pycache__/costing.cpython-312.pyc +0 -0
- package/skills/manufacturing-quality/scripts/__pycache__/spc.cpython-312.pyc +0 -0
- package/skills/marketing-analytics/scripts/__pycache__/rfm.cpython-312.pyc +0 -0
- package/skills/optimization-solver/scripts/__pycache__/solver.cpython-312.pyc +0 -0
- package/skills/pivot-crosstab/scripts/__pycache__/pivot_tools.cpython-312.pyc +0 -0
- package/skills/portfolio-analysis/scripts/__pycache__/portfolio.cpython-312.pyc +0 -0
- package/skills/procurement-supply/scripts/__pycache__/supply.cpython-312.pyc +0 -0
- package/skills/production-planning/scripts/__pycache__/mrp_capacity.cpython-312.pyc +0 -0
- package/skills/project-management/scripts/__pycache__/cpm.cpython-312.pyc +0 -0
- package/skills/quant-analysis/scripts/__pycache__/quant.cpython-312.pyc +0 -0
- package/skills/real-estate-property/scripts/__pycache__/property_calc.cpython-312.pyc +0 -0
- package/skills/regression-forecast/scripts/__pycache__/regress.cpython-312.pyc +0 -0
- package/skills/securities-research/scripts/__pycache__/valuation.cpython-312.pyc +0 -0
- package/skills/statistical-testing/scripts/__pycache__/stat_tests.cpython-312.pyc +0 -0
- package/skills/treasury-mgmt/scripts/__pycache__/cashflow_forecast.cpython-312.pyc +0 -0
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
## 直接运行
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Node.js(ESM):普通模式 ≥18,全屏工作台 ≥22。
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
13
|
cd huicai-cli
|
|
@@ -16,7 +16,7 @@ npm link # 安装全局 huicai 命令(或:node bin/huicai.js)
|
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
核心链路**零第三方运行时依赖**(`--plain` 或未装 ink 时,只用 Node 内置模块即可跑)。
|
|
19
|
-
|
|
19
|
+
TTY 默认全屏,退出恢复终端;`--plain` 普通模式。缺依赖时回退。见[操作指南](docs/terminal-workbench.md)。
|
|
20
20
|
|
|
21
21
|
## 配置
|
|
22
22
|
|
|
@@ -106,6 +106,66 @@ huicai -c -p "继续修" --yolo # 非交互续接(CI)
|
|
|
106
106
|
|
|
107
107
|
`/init` 让智能体实际调研项目后生成/完善 `HUICAI.md`(非静态模板);`/status` 显示版本/模型/会话/MCP/权限规则。
|
|
108
108
|
|
|
109
|
+
## 三层班子与预算化编排(P2-14,默认关闭)
|
|
110
|
+
|
|
111
|
+
编排设施本来就有(子智能体、专家团、脚本化工作流、自动升配、兜底模型),缺的是**显式预算**:
|
|
112
|
+
一个长任务会派多少次、问几次顾问、花超了怎么办——不可预期的直接后果是没人敢放手让它跑大任务。
|
|
113
|
+
|
|
114
|
+
开启:`~/.huicai/config.json` 里 `"crewBudget": true`,或 `HUICAI_CREW_BUDGET=1`。
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"crewBudget": true,
|
|
119
|
+
"crewBudgetPlan": { "subtasks": 6, "dispatchesPerSubtask": 2, "advisories": 5 },
|
|
120
|
+
"advisorModel": "<更强的推理模型id>"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 三层角色,各自的纪律
|
|
125
|
+
|
|
126
|
+
| 角色 | 是谁 | 纪律 |
|
|
127
|
+
| --- | --- | --- |
|
|
128
|
+
| **编排者** | 主线智能体 | 规划、派发、校验、综合。**绝不做工人级的活**(自己埋头串行啃),**绝不通过顾问去执行**(那是拿最贵的模型当工人使) |
|
|
129
|
+
| **工人** | `dispatch_agent` / `dispatch_agents`(便宜模型,并行) | 无状态生成单元,扇出执行。交结论前必须**真验证**,验不了就如实说验不了 |
|
|
130
|
+
| **顾问** | `ask_advisor`(最强模型,串行且稀少) | 只在**承诺边界**问:方案评审 / 成稿评审 / 工人结论矛盾且自己核不动 / 同一子任务连栽两次 / 发现跑偏出成功标准 / 方案要推翻重来 |
|
|
131
|
+
|
|
132
|
+
顾问的价值在稀少。遇到难题就问,它就退化成第二个工人——所以「何时该问」是六条**可判定的规则**,
|
|
133
|
+
写在工具描述里,而不是一句「不要滥用」。
|
|
134
|
+
|
|
135
|
+
### 预算:管的是编排的形状,不是总消耗
|
|
136
|
+
|
|
137
|
+
与既有的 `budgetTokens`(`/budget`,软提醒的 token 总量)是两件互补的事。这里的形状是
|
|
138
|
+
**「子任务数 × 每个最多派 2 次 + 顾问 5 次」**。大任务动手前先调 `plan_budget` 立框,
|
|
139
|
+
把子任务数与**成功标准**一起说出来——说不出自己要派几次,多半也没想清楚要干什么。
|
|
140
|
+
`budget_status` 随时自查,`/cost` 一并展示。
|
|
141
|
+
|
|
142
|
+
### 一条不可让步的纪律:超支不许静默
|
|
143
|
+
|
|
144
|
+
额度用尽时工具**拒绝执行**,并返回一句给模型的指令:停下来告诉用户已完成什么、还剩什么、
|
|
145
|
+
再给多少额度能做完,由用户决定。不是抛错(模型会重试),也不是放行加个警告(那就是静默超支本身)。
|
|
146
|
+
批量派发按**路数**扣而非调用次数——否则一次派八路和派一路花一样的钱,预算立刻失效。
|
|
147
|
+
剩余不足以覆盖整批时会派完剩下的并**如实说明只派了几路**:少做而不说是另一种静默。
|
|
148
|
+
|
|
149
|
+
### 撞顶之后,只有你能放行
|
|
150
|
+
|
|
151
|
+
额度用尽后模型**不能自己把额度调大**(再调 `plan_budget` 报个更大的数字会被拒)。
|
|
152
|
+
不堵这个口子,「由用户决定」就是一句空话——模型自签自批,你永远不会被问到。
|
|
153
|
+
它这时只剩一条路:停下来说明还需要多少。放额度是你的动作:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
/crew # 看当前进度(派发/顾问/成功标准/降级情况)
|
|
157
|
+
/crew 6 # 再放 6 个子任务的派发额度
|
|
158
|
+
/crew advisor 3 # 再放 3 次顾问额度
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 降级契约
|
|
162
|
+
|
|
163
|
+
某一层不可用时(如未配 `advisorModel`),编排者可临时兼任,但有四条硬约束:
|
|
164
|
+
预算不变、受影响的部分**打降级标记**、注明**上下文隔离性已丢失**(既当执行者又当评审者,看不出自己的盲区)、
|
|
165
|
+
且**最多兼任一个角色**——两个都自己兼,三层班子就名存实亡了,而"名存实亡"不会有任何报错。
|
|
166
|
+
|
|
167
|
+
未开启时这一层整个不存在:不注册那两个工具、不套装饰器,`dispatch`/`advisor` 的行为与改造前逐位一致。
|
|
168
|
+
|
|
109
169
|
## 内置本机工具
|
|
110
170
|
|
|
111
171
|
| 工具 | 说明 | 授权 |
|
|
@@ -127,11 +187,11 @@ huicai -c -p "继续修" --yolo # 非交互续接(CI)
|
|
|
127
187
|
| `schedule_followup` | 智能体给自己排后续任务(等构建完成后检查、明早再跑…),到点起全新无头会话续做 | **是否继续?三选项确认** |
|
|
128
188
|
| `send_notification` | 弹系统通知把用户叫回来(长任务完成 / 需要人拍板 / 无人值守出结果) | 自动放行(本机提示,不外发) |
|
|
129
189
|
| `machine_presence` / `set_wake_lock` / `wait_for_unlock` | 查锁屏与空闲状态 / 持防休眠锁让长任务跑完 / 等用户解锁再做界面操作 | 查看自动放行;持锁**三选项确认** |
|
|
190
|
+
| `read_ui_tree` | **读界面结构**(可访问性树):拿到当前窗口所有可点/可填控件的名称、精确坐标与快捷键,不用截图也不用目测坐标 | **是否继续?三选项确认** |
|
|
130
191
|
| `computer_screenshot` / `computer_click` / `computer_move` / `computer_drag` / `computer_scroll` / `computer_type` / `computer_key` / `computer_apps` / `computer_focus_app` | 计算机使用:看屏幕、点鼠标、敲键盘、切换窗口——操作没有命令行的桌面软件 | **是否继续?三选项确认**(`computer_apps` 只读放行) |
|
|
131
192
|
| `run_native_script` | 用系统原生脚本直接指挥应用(macOS AppleScript/JXA、Windows PowerShell/COM)——**操作桌面软件的首选**,比对着截图点坐标可靠 | **是否继续?三选项确认** |
|
|
132
193
|
|
|
133
|
-
|
|
134
|
-
`2、是,并允许在当前对话中后续相同操作不再询问`(按工具名记忆,仅本会话)· `3、否`(可直接输入原因,会回灌给模型调整方案)。
|
|
194
|
+
**自动化操作的三选项确认**:本次允许、会话同类操作允许、拒绝。终端用 ↑↓ 选择、Enter 确认、Esc 取消,无需输入编号;方案提问支持单选、多选与“其他意见”,见[操作指南](docs/terminal-workbench.md)。
|
|
135
195
|
沙箱模式(`/sandbox`)下这些操作与 shell/联网一样被禁止;全部以 argv 直接 spawn(不经 shell)+ 参数白名单校验,杜绝命令注入。
|
|
136
196
|
|
|
137
197
|
**执行策略**:同一轮里连续的只读工具调用**并行执行**(结果仍按序回灌);单条工具输出超长自动**截断保头尾**,
|
|
@@ -143,12 +203,21 @@ huicai -c -p "继续修" --yolo # 非交互续接(CI)
|
|
|
143
203
|
无需用户配置,对话里按需自动生效:
|
|
144
204
|
|
|
145
205
|
- **自动加载技能 / 专家团 / 专家**:本地技能(`.huicai/skills` + `~/.huicai/skills` + 随包内置)以「名称+描述」
|
|
146
|
-
|
|
206
|
+
作为一条紧跟系统提示词的独立目录消息投放、正文经 `load_skill` 按需载入;**会话中途装的技能下一轮即可见**
|
|
207
|
+
(目录变了就追加一条替换目录,不必重开会话)。用户也可直接敲 `/技能名` 把某条技能的操作指引投进当前对话。
|
|
208
|
+
技能可用 frontmatter 的 `disable-model-invocation` / `user-invocable` 分别关闭模型侧或用户侧调用。
|
|
209
|
+
本地专家团(`.huicai/squads` + 内置 11 个)与子智能体人格
|
|
147
210
|
进「能力目录」,模型据此自行 `dispatch_member` 派活;平台上你有权限的专家团/工作流/智能体/数字人自动编队成
|
|
148
211
|
`consult_expert`。平台技能库还会在后台自动同步到本地(**本地优先、只增不删**,6 小时节流,`autoSkillSync:false` 关)。
|
|
149
212
|
- **会话中途接入 MCP**:发现缺能力时 `list_mcp_servers` → `connect_mcp`,新工具**下一轮就能调用**
|
|
150
213
|
(agent 循环每轮重算工具表),不必重开会话。
|
|
151
214
|
- **对话式自动化任务**:说「以后每天…」就直接落成定时任务;改/停/删也是一句话。
|
|
215
|
+
- **调度本机装着的别家智能体**:检测到 Claude Code / Codex 命令行时出现 `dispatch_external_agent`,
|
|
216
|
+
可把一个自足任务派给它们做交叉验证(每次调用都要用户批准——它会真的在本机读写文件、执行命令)。
|
|
217
|
+
- **翻旧账翻到具体那一步**:`search_history` 找「哪次对话」,`session_event_search` 找「哪一条消息」,
|
|
218
|
+
`session_event_trace` 摊开那一步的前因后果(谁要求的 → 调了什么 → 返回什么 → 结论是什么)。
|
|
219
|
+
- **联网搜索**:`web_search` 统一走平台(提供商与密钥由管理员后台配置,本机不直连搜索引擎),
|
|
220
|
+
**结果注明出自哪个提供商**。`/websearch on|off` 开关(与桌面端/IDEA 同源),关后平台智能体也不联网。
|
|
152
221
|
- **消息通知**:长任务跑完(默认 ≥60s)自动弹系统通知;模型也可主动 `send_notification` 叫人。
|
|
153
222
|
- **锁屏与无人值守**:Auto 模式与 `-p --yolo`(含 `huicai daemon` 派生的任务)全程持**防休眠锁**,
|
|
154
223
|
合盖离开也不断。锁屏期间命令 / Python / 文件 / 联网照常跑;**只有屏幕点击键入会被操作系统挡住**——
|
|
@@ -198,8 +267,8 @@ huicai -c -p "继续修" --yolo # 非交互续接(CI)
|
|
|
198
267
|
双触发:上一轮**真实 `prompt_tokens`** 超阈值,或(尚无实测值时)本地估算超阈值——估算与 `/context`
|
|
199
268
|
同口径、CJK 感知。**默认阈值 100 万 tokens**(`autoCompactTokens` 或 `/autocompact <N>` 可调,`off` 关闭)。
|
|
200
269
|
|
|
201
|
-
|
|
202
|
-
|
|
270
|
+
**会员等级有上下文上限时它就是窗口**:按平台口径估算到 90% 即压缩,摘要分块、工具结果、技能目录都按窗口收紧。
|
|
271
|
+
模型或平台报「装不下」时强制压缩再重试(每回合至多 3 次),无需手动调小阈值。
|
|
203
272
|
|
|
204
273
|
**摘要独立存储在会话的 compaction 状态里,原对话消息与页面显示完全不变**——只是发给模型的上下文换成
|
|
205
274
|
「system + 摘要 + 最近几轮」的视图。优先以用户消息为切割边界;单个超长回合(一条提问 + 上百轮工具往返)
|
|
@@ -223,6 +292,66 @@ huicai -c -p "继续修" --yolo # 非交互续接(CI)
|
|
|
223
292
|
- 流式响应 90s 无数据由**停滞看门狗**中止(不再挂死),可直接重发。
|
|
224
293
|
- 单回合最大工具轮数默认 60(`--max-turns` / `HUICAI_MAX_TURNS` / 配置 `maxTurns` 可调)。
|
|
225
294
|
|
|
295
|
+
## 无视觉 GUI 自动化(P2-15)
|
|
296
|
+
|
|
297
|
+
操作桌面软件原本只有两条路,各有硬伤:`run_native_script` 最准,但每个应用都要单独写脚本;
|
|
298
|
+
视觉点击最通用,但慢(每步一张截图)、贵(一张图上千 token)、还不准(坐标靠模型目测)。
|
|
299
|
+
|
|
300
|
+
`read_ui_tree` 是第三条:直接读**操作系统自己维护的那份界面结构**。按钮叫什么、在哪、能不能点、
|
|
301
|
+
快捷键是什么,系统全都知道——比看截图快一个数量级、坐标是精确值、token 省两个数量级。
|
|
302
|
+
|
|
303
|
+
优先级因此变成:**命令行/接口 → 原生脚本 → 读界面结构 → 视觉兜底**。
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
read_ui_tree # 读当前前台应用的可交互控件
|
|
307
|
+
read_ui_tree {app:"预览"} # 读指定应用
|
|
308
|
+
read_ui_tree {menu:true} # 只读菜单栏里带快捷键的命令
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
输出是紧凑行而非 JSON(同样的信息 JSON 要多花三倍 token):
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
【预览 · 报表.pdf】可交互控件 12 个(原始节点 843 个,已按可交互/可见/可用/有名筛选):
|
|
315
|
+
1. 按钮「保存」中心(640,435) 80×30 快捷键 S
|
|
316
|
+
2. 输入框「文件名」中心(420,380) 220×24
|
|
317
|
+
...
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**有快捷键就别去点按钮**——不用先定位、不受窗口移动影响、也不会点错到旁边的控件上。
|
|
321
|
+
所以 `menu:true` 那条路往往比读控件更值。
|
|
322
|
+
|
|
323
|
+
### 剪枝:这条路最容易翻车的是「量」,不是「难」
|
|
324
|
+
|
|
325
|
+
一棵可访问性树几十万字符,不剪枝的话一次读取就能撑爆上下文,而且撑爆之前它还很慢。
|
|
326
|
+
四条筛选规则(可交互类型 / 可见且面积够大且不在屏幕外 / 可用 / 有名)就地过滤,
|
|
327
|
+
再加节点数与输出长度双重硬上限。一屏几百上千个节点通常筛到几十个。
|
|
328
|
+
|
|
329
|
+
### 平台与权限
|
|
330
|
+
|
|
331
|
+
| 平台 | 机制 | 需要授权 |
|
|
332
|
+
| --- | --- | --- |
|
|
333
|
+
| macOS | `osascript -l JavaScript` 驱动 System Events(底层即 AXUIElement) | **需要**「辅助功能」权限 |
|
|
334
|
+
| Windows | PowerShell + `UIAutomationClient`(.NET 自带) | 不需要 |
|
|
335
|
+
| Linux | 暂不支持(AT-SPI 需额外运行时,各桌面环境差异大) | — |
|
|
336
|
+
|
|
337
|
+
两个平台用的都是既有 `run_native_script` 那套命令,**不引入任何新依赖**。
|
|
338
|
+
|
|
339
|
+
macOS 未授权时系统返回 `-25211`,工具会识别出来并给出照着能做的三步指引——
|
|
340
|
+
其中「**授权后要重启该程序**」是最容易漏掉的一步,漏了就是「我明明开了还是不行」。
|
|
341
|
+
|
|
342
|
+
读不到时(应用没实现可访问性接口,常见于自绘界面、游戏、旧版 Electron)会明说原因并指向视觉路径,
|
|
343
|
+
不会假装成功。锁屏约束不变:可访问性树在锁屏下同样不可用。
|
|
344
|
+
|
|
345
|
+
> 它与截屏是同一类隐私暴露(都会读到别的窗口里的内容),所以同样走三选项审批,
|
|
346
|
+
> 不因为"只是读"就默认放行。
|
|
347
|
+
|
|
348
|
+
## 程序化驱动(ACP / SDK)
|
|
349
|
+
|
|
350
|
+
`huicai acp` 起一个 **ACP(Agent Client Protocol)服务端**,编辑器与自动化客户端可经 JSON-RPC over stdio
|
|
351
|
+
长驻驱动惠彩;`src/sdk.js` 是配套客户端(`spawn()` 起子进程,三个方法:开会话 / 提问 / 关掉)。
|
|
352
|
+
与 `-p` 的分工——那个跑完就退出,这个能在同一段上下文里连续对话。
|
|
353
|
+
协议方法、权限模型与用法示例见 [`docs/acp-sdk.md`](docs/acp-sdk.md)。
|
|
354
|
+
|
|
226
355
|
## 富 TUI(ink)
|
|
227
356
|
|
|
228
357
|
TTY 下默认启用 ink + React 全屏界面:已定稿对话记录 + 流式正文、任务清单面板(☐/◐/☑)、思考 spinner、
|
|
@@ -233,7 +362,7 @@ TTY 下默认启用 ink + React 全屏界面:已定稿对话记录 + 流式正
|
|
|
233
362
|
|
|
234
363
|
## VS Code / Cursor 集成
|
|
235
364
|
|
|
236
|
-
见 [`vscode/`](vscode/README.md):纯 JS 扩展(无需构建),三项深度集成:
|
|
365
|
+
见 [`huicai-vscode/`](../huicai-vscode/README.md):纯 JS 扩展(无需构建),三项深度集成:
|
|
237
366
|
- **诊断上下文**:把 Problems 诊断 + 当前文件/选区经环境变量注入智能体(`HUICAI_IDE_FILE`/`SELECTION`/`DIAGNOSTICS`)。
|
|
238
367
|
- **内联 diff 审阅**:智能体写文件时,CLI 经本地服务把改动交扩展弹**原生 diff + 应用/拒绝**(`WorkspaceEdit`,可撤销);未在扩展终端里则直接写盘。
|
|
239
368
|
- **侧边栏面板**:快捷操作 + 最近会话列表(点击恢复)。
|