dsh-plugin-t-expert 0.4.58 → 0.4.63
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/CHANGELOG.md +73 -1
- package/data/experts/academic/family-education-ma/avatars/avatar.webp +0 -0
- package/data/experts/academic/ket-prep-team/avatars/avatar.webp +0 -0
- package/data/experts/academic/liuxue-yanxue-expert/avatars/avatar.webp +0 -0
- package/data/experts/academic/study-fortune-compass/avatars/avatar.webp +0 -0
- package/data/experts/company/campus-event-navigator/avatars/avatar.webp +0 -0
- package/data/experts/company/fortune-master/avatars/avatar.webp +0 -0
- package/data/experts/company/gaokao-advisor/avatars/avatar.webp +0 -0
- package/data/experts/company/multi-cloud-expert/avatars/avatar.webp +0 -0
- package/data/experts/company/multi-cloud-management-expert/avatars/avatar.webp +0 -0
- package/data/experts/company/opc-team/avatars/avatar.webp +0 -0
- package/data/experts/company/paper-topic-selection/avatars/avatar.webp +0 -0
- package/data/experts/company/tanyuan-cultural-heritage-expert/avatars/avatar.webp +0 -0
- package/data/experts/design/ai-image-prompt-engineer/avatars/avatar.webp +0 -0
- package/data/experts/design/ask-liuxiaopai/avatars/avatar.webp +0 -0
- package/data/experts/design/delightful-experience-designer/avatars/avatar.webp +0 -0
- package/data/experts/design/design-engine/avatars/avatar.webp +0 -0
- package/data/experts/design/design-md-architect/avatars/avatar.webp +0 -0
- package/data/experts/design/design-prototype-expert/avatars/avatar.webp +0 -0
- package/data/experts/design/diversity-visual-expert/avatars/avatar.webp +0 -0
- package/data/experts/design/feedback-synthesis-analyst/avatars/avatar.webp +0 -0
- package/data/experts/design/mermaid-diagram-expert/avatars/avatar.webp +0 -0
- package/data/experts/design/migraq-team/avatars/avatar.webp +0 -0
- package/data/experts/design/ngo-challenge-advisor/avatars/avatar.webp +0 -0
- package/data/experts/design/product-strategy-team/avatars/avatar.webp +0 -0
- package/data/experts/design/tripstar-agent/avatars/avatar.webp +0 -0
- package/data/experts/design/user-experience-architect/avatars/avatar.webp +0 -0
- package/data/experts/design/user-experience-researcher/avatars/avatar.webp +0 -0
- package/data/experts/design/workflow-assistant/avatars/avatar.webp +0 -0
- package/data/experts/engineering/academic-journal-selector/avatars/avatar.webp +0 -0
- package/data/experts/engineering/ai-data-copilot/avatars/avatar.webp +0 -0
- package/data/experts/engineering/aicoding-architecture-expert-team/avatars/avatar.webp +0 -0
- package/data/experts/engineering/aihot/avatars/avatar.webp +0 -0
- package/data/experts/engineering/api-dev/avatars/avatar.webp +0 -0
- package/data/experts/engineering/arxiv-watcher/avatars/avatar.webp +0 -0
- package/data/experts/engineering/cat-network-quality-analyst/avatars/avatar.webp +0 -0
- package/data/experts/engineering/code/avatars/avatar.webp +0 -0
- package/data/experts/engineering/code-review-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/data-analytics-reporter/avatars/avatar.webp +0 -0
- package/data/experts/engineering/database-operations/avatars/avatar.webp +0 -0
- package/data/experts/engineering/deep-research/avatars/avatar.webp +0 -0
- package/data/experts/engineering/dev-pipeline-orchestrator/avatars/avatar.webp +0 -0
- package/data/experts/engineering/edgeone-makers-experts/avatars/avatar.webp +0 -0
- package/data/experts/engineering/empirical-research-team/avatars/avatar.webp +0 -0
- package/data/experts/engineering/engineering-assurance-team/avatars/avatar.webp +0 -0
- package/data/experts/engineering/engineering-workflow-skills/avatars/avatar.webp +0 -0
- package/data/experts/engineering/eno/avatars/avatar.webp +0 -0
- package/data/experts/engineering/frontend/avatars/avatar.webp +0 -0
- package/data/experts/engineering/git-workflow-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/gpt-researcher-team/avatars/avatar.webp +0 -0
- package/data/experts/engineering/gstack/avatars/avatar.webp +0 -0
- package/data/experts/engineering/hsk-devops-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/huashu-data-pro/avatars/avatar.webp +0 -0
- package/data/experts/engineering/jinshuju-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/jinshuju-form-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/jinshuju-table-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/kdocs-data-table/avatars/avatar.webp +0 -0
- package/data/experts/engineering/mcp-build-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/mibao-media-archivist/avatars/avatar.webp +0 -0
- package/data/experts/engineering/mobile-application-developer/avatars/avatar.webp +0 -0
- package/data/experts/engineering/modern-webapp/avatars/avatar.webp +0 -0
- package/data/experts/engineering/mvp-dev-expert-team/avatars/avatar.webp +0 -0
- package/data/experts/engineering/ncre-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/nuwa/avatars/avatar.webp +0 -0
- package/data/experts/engineering/omics-cdgpt-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/omics-hpc-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/omics-scbert-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/omics-scprotein-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/personal-knowledge-architect/avatars/avatar.webp +0 -0
- package/data/experts/engineering/prompt-engineering-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/python-fullstack-engineer/avatars/avatar.webp +0 -0
- package/data/experts/engineering/rum-fullstack-team/avatars/avatar.webp +0 -0
- package/data/experts/engineering/superpowers-zh/avatars/avatar.webp +0 -0
- package/data/experts/engineering/tencentcloud-api/avatars/avatar.webp +0 -0
- package/data/experts/engineering/vocab-craft-expert/avatars/avatar.webp +0 -0
- package/data/experts/engineering/workspace-builder/avatars/avatar.webp +0 -0
- package/data/experts/engineering/yunzhi-qa-assistant/avatars/avatar.webp +0 -0
- package/data/experts/finance/a-share-analysis/avatars/avatar.webp +0 -0
- package/data/experts/finance/anti-scam-agent/avatars/avatar.webp +0 -0
- package/data/experts/finance/believe-in-light/avatars/avatar.webp +0 -0
- package/data/experts/finance/citongshuopro/avatars/avatar.webp +0 -0
- package/data/experts/finance/corp-credit-due-diligence/avatars/avatar.webp +0 -0
- package/data/experts/finance/dd-due-diligence-team/avatars/avatar.webp +0 -0
- package/data/experts/finance/earnings-reviewer/avatars/avatar.webp +0 -0
- package/data/experts/finance/egypt-strategic-advisory/avatars/avatar.webp +0 -0
- package/data/experts/finance/equity-research/avatars/avatar.webp +0 -0
- package/data/experts/finance/fin-research-expert/avatars/avatar.webp +0 -0
- package/data/experts/finance/financial-tracker/avatars/avatar.webp +0 -0
- package/data/experts/finance/fund-research-analyst/avatars/avatar.webp +0 -0
- package/data/experts/finance/gl-reconciler/avatars/avatar.webp +0 -0
- package/data/experts/finance/industry-sre-team/avatars/avatar.webp +0 -0
- package/data/experts/finance/investment-masters-team/avatars/avatar.webp +0 -0
- package/data/experts/finance/kyc-screener/avatars/avatar.webp +0 -0
- package/data/experts/finance/mai-deal-advisor/avatars/avatar.webp +0 -0
- package/data/experts/finance/market-researcher/avatars/avatar.webp +0 -0
- package/data/experts/finance/meeting-prep-agent/avatars/avatar.webp +0 -0
- package/data/experts/finance/mentougou-business-guide/avatars/avatar.webp +0 -0
- package/data/experts/finance/model-builder/avatars/avatar.webp +0 -0
- package/data/experts/finance/month-end-closer/avatars/avatar.webp +0 -0
- package/data/experts/finance/new-share-expert/avatars/avatar.webp +0 -0
- package/data/experts/finance/pitch-agent/avatars/avatar.webp +0 -0
- package/data/experts/finance/roadshow-research-team/avatars/avatar.webp +0 -0
- package/data/experts/finance/sg-finance-tax/avatars/avatar.webp +0 -0
- package/data/experts/finance/smart-stock-analyst/avatars/avatar.webp +0 -0
- package/data/experts/finance/smb-finance/avatars/avatar.webp +0 -0
- package/data/experts/finance/south-africa-strategy-advisor/avatars/avatar.webp +0 -0
- package/data/experts/finance/statement-auditor/avatars/avatar.webp +0 -0
- package/data/experts/finance/strategy-backtest-expert/avatars/avatar.webp +0 -0
- package/data/experts/finance/tdx-stock-diagnostician/avatars/avatar.webp +0 -0
- package/data/experts/finance/tdx-stock-hunter/avatars/avatar.webp +0 -0
- package/data/experts/finance/tdx-value-assessor/avatars/avatar.webp +0 -0
- package/data/experts/finance/terminal-veteran/avatars/avatar.webp +0 -0
- package/data/experts/finance/uae-public-affairs/avatars/avatar.webp +0 -0
- package/data/experts/finance/uae-strategic-advisor/avatars/avatar.webp +0 -0
- package/data/experts/finance/valuation-reviewer/avatars/avatar.webp +0 -0
- package/data/experts/finance/yahoo-finance-cli/avatars/avatar.webp +0 -0
- package/data/experts/game-development/game-development-studio/avatars/avatar.webp +0 -0
- package/data/experts/game-development/godot-game-script-engineer/avatars/avatar.webp +0 -0
- package/data/experts/gis/egypt-marketing/avatars/avatar.webp +0 -0
- package/data/experts/gis/exam-preparation-planner/avatars/avatar.webp +0 -0
- package/data/experts/gis/lazy-travel-planner/avatars/avatar.webp +0 -0
- package/data/experts/healthcare/patient-education-content-review-word-assistant/avatars/avatar.webp +0 -0
- package/data/experts/healthcare/tianyu-marketing-guardian/avatars/avatar.webp +0 -0
- package/data/experts/hr/customer-support-expert/avatars/avatar.webp +0 -0
- package/data/experts/hr/family-education-coach/avatars/avatar.webp +0 -0
- package/data/experts/hr/fbsir-beike-yi/avatars/avatar.webp +0 -0
- package/data/experts/hr/hr-operations-team/avatars/avatar.webp +0 -0
- package/data/experts/hr/ihr-ai-interviewer/avatars/avatar.webp +0 -0
- package/data/experts/hr/ihr-conference/avatars/avatar.webp +0 -0
- package/data/experts/hr/interview-simulator/avatars/avatar.webp +0 -0
- package/data/experts/hr/qingflow-hr-expert/avatars/avatar.webp +0 -0
- package/data/experts/hr/south-africa-hr-admin/avatars/avatar.webp +0 -0
- package/data/experts/hr/xiaot/avatars/avatar.webp +0 -0
- package/data/experts/legal/brazil-company-query/avatars/avatar.webp +0 -0
- package/data/experts/legal/brazil-legal/avatars/avatar.webp +0 -0
- package/data/experts/legal/brazil-rfb-expert/avatars/avatar.webp +0 -0
- package/data/experts/legal/charity-doc-finance-expert/avatars/avatar.webp +0 -0
- package/data/experts/legal/indonesia-bd-expert/avatars/avatar.webp +0 -0
- package/data/experts/legal/indonesia-digital-law-expert/avatars/avatar.webp +0 -0
- package/data/experts/legal/indonesia-pa-expert/avatars/avatar.webp +0 -0
- package/data/experts/legal/inspection-expert/avatars/avatar.webp +0 -0
- package/data/experts/legal/malaysia-finance-tax/avatars/avatar.webp +0 -0
- package/data/experts/legal/malaysia-hr-admin/avatars/avatar.webp +0 -0
- package/data/experts/legal/malaysia-legal/avatars/avatar.webp +0 -0
- package/data/experts/legal/sg-hr-admin-expert/avatars/avatar.webp +0 -0
- package/data/experts/legal/smb-team/avatars/avatar.webp +0 -0
- package/data/experts/legal/thai-marketing-creative/avatars/avatar.webp +0 -0
- package/data/experts/legal/thailand-hr-admin/avatars/avatar.webp +0 -0
- package/data/experts/marketing/ad-tracking-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/ai-humanizer/avatars/avatar.webp +0 -0
- package/data/experts/marketing/ai-shifu/avatars/avatar.webp +0 -0
- package/data/experts/marketing/ai-video-script/avatars/avatar.webp +0 -0
- package/data/experts/marketing/auto-consultant/avatars/avatar.webp +0 -0
- package/data/experts/marketing/book-co-creator/avatars/avatar.webp +0 -0
- package/data/experts/marketing/chatcut-video-editor/avatars/avatar.webp +0 -0
- package/data/experts/marketing/content-creation-expert-prod/avatars/avatar.webp +0 -0
- package/data/experts/marketing/content-distribution-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/content-monetization-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/content-writer/avatars/avatar.webp +0 -0
- package/data/experts/marketing/fbsir-mom-dialogue-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/frontend-slides/avatars/avatar.webp +0 -0
- package/data/experts/marketing/geo-diagnosis-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/humanize-ppt-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/jiayi-ads-analytics-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/kdocs-doc-butler/avatars/avatar.webp +0 -0
- package/data/experts/marketing/kdocs-knowledge-collector/avatars/avatar.webp +0 -0
- package/data/experts/marketing/kdocs-pdf-toolbox/avatars/avatar.webp +0 -0
- package/data/experts/marketing/kdocs-ppt-creator/avatars/avatar.webp +0 -0
- package/data/experts/marketing/kidd-content-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/livestream-ecommerce-coach/avatars/avatar.webp +0 -0
- package/data/experts/marketing/long-manuscript-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/market-analysis-cn/avatars/avatar.webp +0 -0
- package/data/experts/marketing/marketing-campaign-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/marketing-growth-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/news-briefing-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/news-buddy/avatars/avatar.webp +0 -0
- package/data/experts/marketing/nges-healthcare-marketing-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/novel-creator/avatars/avatar.webp +0 -0
- package/data/experts/marketing/novel-generator/avatars/avatar.webp +0 -0
- package/data/experts/marketing/ppc-bidding-strategist/avatars/avatar.webp +0 -0
- package/data/experts/marketing/ppt-creation-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/private-domain-marketing-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/programmatic-ad-buyer/avatars/avatar.webp +0 -0
- package/data/experts/marketing/promo-creator-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/remotion-video-generator/avatars/avatar.webp +0 -0
- package/data/experts/marketing/seo-content-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/social-engagement-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/tietu-toutiao/avatars/avatar.webp +0 -0
- package/data/experts/marketing/topic-evaluator/avatars/avatar.webp +0 -0
- package/data/experts/marketing/trend-hunter/avatars/avatar.webp +0 -0
- package/data/experts/marketing/vibeknow-design-video/avatars/avatar.webp +0 -0
- package/data/experts/marketing/vibeknow-handdraw/avatars/avatar.webp +0 -0
- package/data/experts/marketing/vibeknow-ppt-explain/avatars/avatar.webp +0 -0
- package/data/experts/marketing/video-dissection/avatars/avatar.webp +0 -0
- package/data/experts/marketing/video-gen-team/avatars/avatar.webp +0 -0
- package/data/experts/marketing/viral-topic-master/avatars/avatar.webp +0 -0
- package/data/experts/marketing/wechat-official-account-expert/avatars/avatar.webp +0 -0
- package/data/experts/marketing/xiaohongshu-operations-expert/avatars/avatar.webp +0 -0
- package/data/experts/paid-media/computer-operations-advisor/avatars/avatar.webp +0 -0
- package/data/experts/paid-media/vietnam-public-affairs/avatars/avatar.webp +0 -0
- package/data/experts/project-management/agent-orchestrator/avatars/avatar.webp +0 -0
- package/data/experts/project-management/ai-meeting-notes/avatars/avatar.webp +0 -0
- package/data/experts/project-management/api-testing-expert/avatars/avatar.webp +0 -0
- package/data/experts/project-management/document-generation-expert/avatars/avatar.webp +0 -0
- package/data/experts/project-management/document-skills/avatars/avatar.webp +0 -0
- package/data/experts/project-management/jira-workflow-admin/avatars/avatar.webp +0 -0
- package/data/experts/project-management/openspec-doc-team/avatars/avatar.webp +0 -0
- package/data/experts/project-management/performance-testing-expert/avatars/avatar.webp +0 -0
- package/data/experts/project-management/yunzhi-doc-quality-expert/avatars/avatar.webp +0 -0
- package/data/experts/research/apm-performance-expert/avatars/avatar.webp +0 -0
- package/data/experts/research/egypt-public-affairs/avatars/avatar.webp +0 -0
- package/data/experts/research/finops-expert/avatars/avatar.webp +0 -0
- package/data/experts/research/fortune-consultant/avatars/avatar.webp +0 -0
- package/data/experts/research/hubble-eval-expert/avatars/avatar.webp +0 -0
- package/data/experts/research/sre-expert/avatars/avatar.webp +0 -0
- package/data/experts/sales/bidding-strategist/avatars/avatar.webp +0 -0
- package/data/experts/sales/cordys-crm/avatars/avatar.webp +0 -0
- package/data/experts/sales/enterprise-account-strategist/avatars/avatar.webp +0 -0
- package/data/experts/sales/industrial-park-investment-attraction-expert/avatars/avatar.webp +0 -0
- package/data/experts/sales/linkfox-expert-amazon-listing-specialist/avatars/avatar.webp +0 -0
- package/data/experts/sales/meituan-living-assistant/avatars/avatar.webp +0 -0
- package/data/experts/sales/presales-technical-consultant/avatars/avatar.webp +0 -0
- package/data/experts/sales/sales-battle-team/avatars/avatar.webp +0 -0
- package/data/experts/sales/sdk-log-expert/avatars/avatar.webp +0 -0
- package/data/experts/sales/sg-biz-dev/avatars/avatar.webp +0 -0
- package/data/experts/sales/smb-revenue/avatars/avatar.webp +0 -0
- package/data/experts/sales/uupt-delivery/avatars/avatar.webp +0 -0
- package/data/experts/security/chatlaw-team/avatars/avatar.webp +0 -0
- package/data/experts/security/contract-expert/avatars/avatar.webp +0 -0
- package/data/experts/security/contract-legal-expert/avatars/avatar.webp +0 -0
- package/data/experts/security/enterprise-legal-team/avatars/avatar.webp +0 -0
- package/data/experts/security/fbsir-aigc-compliance-red-team/avatars/avatar.webp +0 -0
- package/data/experts/security/fbsir-board-secretary-assistant/avatars/avatar.webp +0 -0
- package/data/experts/security/huashu-doc-reviewer/avatars/avatar.webp +0 -0
- package/data/experts/security/invoice-verify-expert/avatars/avatar.webp +0 -0
- package/data/experts/security/invoice-verify-workbuddy/avatars/avatar.webp +0 -0
- package/data/experts/security/ip-expert/avatars/avatar.webp +0 -0
- package/data/experts/security/law-student-coach/avatars/avatar.webp +0 -0
- package/data/experts/security/legal-builder-hub/avatars/avatar.webp +0 -0
- package/data/experts/security/legal-clinic-supervisor/avatars/avatar.webp +0 -0
- package/data/experts/security/legal-compliance-reviewer/avatars/avatar.webp +0 -0
- package/data/experts/security/legal-search-pro/avatars/avatar.webp +0 -0
- package/data/experts/security/litigation-legal/avatars/avatar.webp +0 -0
- package/data/experts/security/marketing-reviewer/avatars/avatar.webp +0 -0
- package/data/experts/security/personal-fitness-coach/avatars/avatar.webp +0 -0
- package/data/experts/security/sa-legal-compliance/avatars/avatar.webp +0 -0
- package/data/experts/security/smb-compliance/avatars/avatar.webp +0 -0
- package/data/experts/security/soe/avatars/avatar.webp +0 -0
- package/data/experts/security/tax-compliance-team/avatars/avatar.webp +0 -0
- package/data/experts/security/tc-sec/avatars/avatar.webp +0 -0
- package/data/experts/security/xiaofa-litigation-assistant/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/career-navigator/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/chaogeek-kongming/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/chuangye-manor/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/consulting-partners/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/english-writing-coach/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/fbsir-eight-seat-board/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/fbsir-industry-scene-researcher/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/fbsir-super-partner/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/innovation-startup-mentor/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/malaysia-marketing/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/metamorphosis-practitioner/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/tianyu-account-guardian/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/uae-marketing-advisor/avatars/avatar.webp +0 -0
- package/data/experts/spatial-computing/well-arch-expert/avatars/avatar.webp +0 -0
- package/data/experts/specialized/campus-conversation-coach/avatars/avatar.webp +0 -0
- package/data/experts/specialized/capacity-expert/avatars/avatar.webp +0 -0
- package/data/experts/specialized/chaos-expert/avatars/avatar.webp +0 -0
- package/data/experts/specialized/fbsir-super-independent-board/avatars/avatar.webp +0 -0
- package/data/experts/specialized/indie-founder-coach/avatars/avatar.webp +0 -0
- package/data/experts/specialized/job-companion-team/avatars/avatar.webp +0 -0
- package/data/experts/specialized/note-class-representative/avatars/avatar.webp +0 -0
- package/data/experts/specialized/panshi-customer-visit-agent/avatars/avatar.webp +0 -0
- package/data/experts/specialized/tc-chengxin-travel-expert/avatars/avatar.webp +0 -0
- package/data/experts/specialized/worldcup-buddy/avatars/avatar.webp +0 -0
- package/data/experts/support/campus-job-search-coach/avatars/avatar.webp +0 -0
- package/data/experts/support/skillhub-charity-expert-team/avatars/avatar.webp +0 -0
- package/data/experts/support/tencent-rtc-expert/avatars/avatar.webp +0 -0
- package/data/experts/support/workbuddy-universal-mentor/avatars/avatar.webp +0 -0
- package/data/experts/testing/aladin-test-design/avatars/avatar.webp +0 -0
- package/data/experts/testing/skill-smith/avatars/avatar.webp +0 -0
- package/data/experts/testing/thesis-writing-mentor/avatars/avatar.webp +0 -0
- package/lib/client.js +13 -10
- package/lib/index.js +15 -1
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/client.js
CHANGED
|
@@ -67,7 +67,7 @@ var SectionBoundary = class extends import_react.default.Component {
|
|
|
67
67
|
|
|
68
68
|
// src/client/state.js
|
|
69
69
|
var NS = "t-team";
|
|
70
|
-
var CLIENT_BUILD_VERSION = "0.4.
|
|
70
|
+
var CLIENT_BUILD_VERSION = "0.4.63";
|
|
71
71
|
var PLUGIN_ID = "dsh-plugin-t-expert";
|
|
72
72
|
var DIVISION_FALLBACK = "specialized";
|
|
73
73
|
var NEW_DIVISION = "__new";
|
|
@@ -21790,19 +21790,22 @@ function SettingsPanel({ t, ctx, remote, skillRemote, getActive, initialTab, vie
|
|
|
21790
21790
|
return first === void 0 ? division2 : divisionLabel(first, active);
|
|
21791
21791
|
};
|
|
21792
21792
|
const needle = query.trim().toLowerCase();
|
|
21793
|
-
const visible = experts.filter((expert) => {
|
|
21793
|
+
const visible = import_react5.default.useMemo(() => experts.filter((expert) => {
|
|
21794
21794
|
if (division !== "" && expert.division !== division) return false;
|
|
21795
21795
|
if (status === "on" && !enabledSet.has(expert.slug)) return false;
|
|
21796
21796
|
if (status === "off" && enabledSet.has(expert.slug)) return false;
|
|
21797
21797
|
return matchExpert(expert, active, needle);
|
|
21798
|
-
});
|
|
21798
|
+
}), [experts, division, status, enabledSet, query, active]);
|
|
21799
21799
|
const filtered = query !== "" || division !== "" || status !== "";
|
|
21800
|
-
const grouped =
|
|
21801
|
-
|
|
21802
|
-
const
|
|
21803
|
-
|
|
21804
|
-
|
|
21805
|
-
|
|
21800
|
+
const grouped = import_react5.default.useMemo(() => {
|
|
21801
|
+
const out = [];
|
|
21802
|
+
for (const expert of visible) {
|
|
21803
|
+
const last = out[out.length - 1];
|
|
21804
|
+
if (last !== void 0 && last.division === expert.division) last.items.push(expert);
|
|
21805
|
+
else out.push({ division: expert.division, items: [expert] });
|
|
21806
|
+
}
|
|
21807
|
+
return out;
|
|
21808
|
+
}, [visible]);
|
|
21806
21809
|
async function toggle(expert) {
|
|
21807
21810
|
if (snapshot === null || busy) return;
|
|
21808
21811
|
const next = new Set(snapshot.enabled);
|
|
@@ -22156,7 +22159,7 @@ function SummonButton({ t, ctx, remote, getActive, insertReference, insertSkillH
|
|
|
22156
22159
|
setFailed("");
|
|
22157
22160
|
setPopNote("");
|
|
22158
22161
|
if (!next) return;
|
|
22159
|
-
|
|
22162
|
+
void refresh(remote, false).catch(() => void 0);
|
|
22160
22163
|
}
|
|
22161
22164
|
const active = getActive();
|
|
22162
22165
|
const popTabs = [["experts", "tab.experts"], ["skills", "tab.skills"]];
|
package/lib/index.js
CHANGED
|
@@ -400,6 +400,9 @@ export function apply(ctx, config) {
|
|
|
400
400
|
enabled: unwrapVolatile(source.enabled),
|
|
401
401
|
enabledSeeded: unwrapVolatile(source.enabledSeeded),
|
|
402
402
|
enabledSeedVersion: unwrapVolatile(source.enabledSeedVersion),
|
|
403
|
+
// 2026-09-29 修:漏读 enabledSeedRoster 会让 seedDefaultEnabled 把用户停用过的专家重新打开
|
|
404
|
+
// (entry 模式下 seen 恒为 [],基线退化成当前 enabled,停用的 slug 被当成「新增」再写回)。
|
|
405
|
+
enabledSeedRoster: unwrapVolatile(source.enabledSeedRoster),
|
|
403
406
|
};
|
|
404
407
|
}
|
|
405
408
|
return undefined;
|
|
@@ -759,6 +762,9 @@ export function apply(ctx, config) {
|
|
|
759
762
|
if (expert.packDir === undefined) return "local";
|
|
760
763
|
const info = packInfoFor(roster, expert.division, expert.slug);
|
|
761
764
|
if (info === undefined) return "local";
|
|
765
|
+
// 头像自 2026-09-29 起随包发布(不再走云端):roster 里那些「只装 avatars」的条目已无意义,
|
|
766
|
+
// 一律视为本地 —— 否则面板会给它们挂一个点了也没必要的 ☁️。
|
|
767
|
+
if ((info.dirs ?? []).filter((d) => d !== "avatars").length === 0) return "local";
|
|
762
768
|
return (await assetsState(expert.packDir, info)) === ASSETS_READY ? "ready" : "missing";
|
|
763
769
|
}
|
|
764
770
|
|
|
@@ -1014,7 +1020,9 @@ export function apply(ctx, config) {
|
|
|
1014
1020
|
await removeCustomExpert(customRoot, slug, expert.division);
|
|
1015
1021
|
// 删除后把该专家从启用列表里摘掉,否则设置段会留下一个指向空气的 slug
|
|
1016
1022
|
const enabled = [...enabledSet()].filter((item) => item !== slug);
|
|
1017
|
-
|
|
1023
|
+
// settings 未就绪时跳过写入:文件已删、enabled 里残留一个 ghost slug 不致命(pruneStaleEnabled 下次清),
|
|
1024
|
+
// 但硬调 settingsService.mutate 会抛错把整个删除流程打断(与 pruneStaleEnabled / seedDefaultEnabled 对齐)。
|
|
1025
|
+
if (enabled.length !== enabledSet().size && settingsService !== undefined) {
|
|
1018
1026
|
await settingsService.mutate(SETTINGS_NAMESPACE, [{ op: "set", path: ["enabled"], value: enabled }], revision());
|
|
1019
1027
|
}
|
|
1020
1028
|
await refreshCatalog();
|
|
@@ -1060,14 +1068,18 @@ export function apply(ctx, config) {
|
|
|
1060
1068
|
* 面板据此回退到 emoji(这正是用户要的「没下载过显示默认头像、下载过显示真头像」)。
|
|
1061
1069
|
* 返回 data URL 而不是路径,是因为客户端跑在浏览器里、读不到本地文件。
|
|
1062
1070
|
*/
|
|
1071
|
+
// 头像随包发布、结果进程内缓存;fetchAssets / fetch_expert_assets 拉来新头像才失效。
|
|
1072
|
+
let avatarsCache;
|
|
1063
1073
|
async function avatars() {
|
|
1064
1074
|
await ensureReady();
|
|
1075
|
+
if (avatarsCache !== undefined) return avatarsCache;
|
|
1065
1076
|
const out = {};
|
|
1066
1077
|
await Promise.all(usable().map(async (expert) => {
|
|
1067
1078
|
if (expert.packDir === undefined) return;
|
|
1068
1079
|
const buffer = await readFile(join(expert.packDir, "avatars", "avatar.webp")).catch(() => undefined);
|
|
1069
1080
|
if (buffer !== undefined) out[expert.slug] = `data:image/webp;base64,${buffer.toString("base64")}`;
|
|
1070
1081
|
}));
|
|
1082
|
+
avatarsCache = out;
|
|
1071
1083
|
return out;
|
|
1072
1084
|
}
|
|
1073
1085
|
|
|
@@ -1080,6 +1092,7 @@ export function apply(ctx, config) {
|
|
|
1080
1092
|
const info = packInfoFor(roster, expert.division, expert.slug);
|
|
1081
1093
|
if (info === undefined) return { status: "local", bytes: 0, reason: "" };
|
|
1082
1094
|
const res = await ensureAssets({ packDir: expert.packDir, roster, info });
|
|
1095
|
+
avatarsCache = undefined; // 头像可能刚下到本地,清缓存让下次重读
|
|
1083
1096
|
return {
|
|
1084
1097
|
status: res.status,
|
|
1085
1098
|
bytes: res.bytes ?? info.bytes ?? 0,
|
|
@@ -1201,6 +1214,7 @@ export function apply(ctx, config) {
|
|
|
1201
1214
|
const info = packInfoFor(roster, expert.division, expert.slug);
|
|
1202
1215
|
if (info === undefined) return { ...base, status: "local" };
|
|
1203
1216
|
const res = await ensureAssets({ packDir: expert.packDir, roster, info });
|
|
1217
|
+
avatarsCache = undefined; // 头像可能刚下到本地,清缓存让下次重读
|
|
1204
1218
|
if (res.status === ASSETS_READY) {
|
|
1205
1219
|
return { ...base, status: "ready", dirs: [...(info.dirs ?? [])], bytes: res.bytes ?? info.bytes ?? 0 };
|
|
1206
1220
|
}
|
package/package.json
CHANGED