@liushutan/dsh-agency-agents 0.1.22
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 +41 -0
- package/CHANGELOG.zh-CN.md +41 -0
- package/LICENSE +201 -0
- package/NOTICE +9 -0
- package/README.md +195 -0
- package/README.zh-CN.md +195 -0
- package/assets/agency-agents/LICENSE +21 -0
- package/assets/agency-agents/UPSTREAM.md +7 -0
- package/assets/agency-agents/academic/academic-anthropologist.md +126 -0
- package/assets/agency-agents/academic/academic-geographer.md +128 -0
- package/assets/agency-agents/academic/academic-historian.md +124 -0
- package/assets/agency-agents/academic/academic-narratologist.md +119 -0
- package/assets/agency-agents/academic/academic-psychologist.md +119 -0
- package/assets/agency-agents/academic/academic-statistician.md +145 -0
- package/assets/agency-agents/design/design-brand-guardian.md +323 -0
- package/assets/agency-agents/design/design-image-prompt-engineer.md +237 -0
- package/assets/agency-agents/design/design-inclusive-visuals-specialist.md +72 -0
- package/assets/agency-agents/design/design-persona-walkthrough.md +273 -0
- package/assets/agency-agents/design/design-ui-designer.md +384 -0
- package/assets/agency-agents/design/design-ui-finish-gate-reviewer.md +218 -0
- package/assets/agency-agents/design/design-ux-architect.md +470 -0
- package/assets/agency-agents/design/design-ux-researcher.md +330 -0
- package/assets/agency-agents/design/design-visual-storyteller.md +150 -0
- package/assets/agency-agents/design/design-whimsy-injector.md +439 -0
- package/assets/agency-agents/engineering/engineering-ai-data-remediation-engineer.md +212 -0
- package/assets/agency-agents/engineering/engineering-ai-engineer.md +147 -0
- package/assets/agency-agents/engineering/engineering-api-platform-engineer.md +163 -0
- package/assets/agency-agents/engineering/engineering-autonomous-optimization-architect.md +108 -0
- package/assets/agency-agents/engineering/engineering-backend-architect.md +237 -0
- package/assets/agency-agents/engineering/engineering-cms-developer.md +537 -0
- package/assets/agency-agents/engineering/engineering-code-reviewer.md +77 -0
- package/assets/agency-agents/engineering/engineering-codebase-onboarding-engineer.md +174 -0
- package/assets/agency-agents/engineering/engineering-data-engineer.md +307 -0
- package/assets/agency-agents/engineering/engineering-data-visualization-engineer.md +152 -0
- package/assets/agency-agents/engineering/engineering-database-optimizer.md +177 -0
- package/assets/agency-agents/engineering/engineering-database-reliability-engineer.md +163 -0
- package/assets/agency-agents/engineering/engineering-desktop-app-engineer.md +205 -0
- package/assets/agency-agents/engineering/engineering-developer-tooling-engineer.md +154 -0
- package/assets/agency-agents/engineering/engineering-devops-automator.md +377 -0
- package/assets/agency-agents/engineering/engineering-drupal-performance.md +348 -0
- package/assets/agency-agents/engineering/engineering-drupal-shopping-cart.md +361 -0
- package/assets/agency-agents/engineering/engineering-email-intelligence-engineer.md +354 -0
- package/assets/agency-agents/engineering/engineering-embedded-firmware-engineer.md +174 -0
- package/assets/agency-agents/engineering/engineering-feishu-integration-developer.md +599 -0
- package/assets/agency-agents/engineering/engineering-filament-optimization-specialist.md +284 -0
- package/assets/agency-agents/engineering/engineering-finops-engineer.md +154 -0
- package/assets/agency-agents/engineering/engineering-frontend-developer.md +226 -0
- package/assets/agency-agents/engineering/engineering-gaussdb-expert.md +335 -0
- package/assets/agency-agents/engineering/engineering-git-workflow-master.md +85 -0
- package/assets/agency-agents/engineering/engineering-i18n-engineer.md +185 -0
- package/assets/agency-agents/engineering/engineering-identity-access-engineer.md +197 -0
- package/assets/agency-agents/engineering/engineering-incident-response-commander.md +445 -0
- package/assets/agency-agents/engineering/engineering-iot-fleet-engineer.md +149 -0
- package/assets/agency-agents/engineering/engineering-it-service-manager.md +562 -0
- package/assets/agency-agents/engineering/engineering-llm-post-training-engineer.md +167 -0
- package/assets/agency-agents/engineering/engineering-minimal-change-engineer.md +208 -0
- package/assets/agency-agents/engineering/engineering-mobile-app-builder.md +494 -0
- package/assets/agency-agents/engineering/engineering-mobile-release-engineer.md +164 -0
- package/assets/agency-agents/engineering/engineering-multi-agent-systems-architect.md +601 -0
- package/assets/agency-agents/engineering/engineering-network-engineer.md +240 -0
- package/assets/agency-agents/engineering/engineering-orgscript-engineer.md +114 -0
- package/assets/agency-agents/engineering/engineering-payments-billing-engineer.md +195 -0
- package/assets/agency-agents/engineering/engineering-privacy-engineer.md +153 -0
- package/assets/agency-agents/engineering/engineering-prompt-engineer.md +203 -0
- package/assets/agency-agents/engineering/engineering-rag-pipeline-engineer.md +438 -0
- package/assets/agency-agents/engineering/engineering-rapid-prototyper.md +463 -0
- package/assets/agency-agents/engineering/engineering-realtime-collaboration-engineer.md +188 -0
- package/assets/agency-agents/engineering/engineering-rust-refactoring-specialist.md +314 -0
- package/assets/agency-agents/engineering/engineering-search-relevance-engineer.md +238 -0
- package/assets/agency-agents/engineering/engineering-section-508-specialist.md +340 -0
- package/assets/agency-agents/engineering/engineering-senior-developer.md +177 -0
- package/assets/agency-agents/engineering/engineering-software-architect.md +113 -0
- package/assets/agency-agents/engineering/engineering-solidity-smart-contract-engineer.md +523 -0
- package/assets/agency-agents/engineering/engineering-sre.md +91 -0
- package/assets/agency-agents/engineering/engineering-technical-writer.md +394 -0
- package/assets/agency-agents/engineering/engineering-uswds-developer.md +341 -0
- package/assets/agency-agents/engineering/engineering-video-streaming-engineer.md +151 -0
- package/assets/agency-agents/engineering/engineering-voice-ai-integration-engineer.md +562 -0
- package/assets/agency-agents/engineering/engineering-webassembly-engineer.md +157 -0
- package/assets/agency-agents/engineering/engineering-wechat-mini-program-developer.md +351 -0
- package/assets/agency-agents/engineering/engineering-wordpress-performance.md +347 -0
- package/assets/agency-agents/engineering/engineering-wordpress-shopping-cart.md +347 -0
- package/assets/agency-agents/finance/finance-bookkeeper-controller.md +261 -0
- package/assets/agency-agents/finance/finance-financial-analyst.md +235 -0
- package/assets/agency-agents/finance/finance-fpa-analyst.md +264 -0
- package/assets/agency-agents/finance/finance-investment-researcher.md +273 -0
- package/assets/agency-agents/finance/finance-tax-strategist.md +240 -0
- package/assets/agency-agents/game-development/blender/blender-addon-engineer.md +235 -0
- package/assets/agency-agents/game-development/economy-designer.md +157 -0
- package/assets/agency-agents/game-development/game-audio-engineer.md +265 -0
- package/assets/agency-agents/game-development/game-designer.md +168 -0
- package/assets/agency-agents/game-development/godot/godot-gameplay-scripter.md +335 -0
- package/assets/agency-agents/game-development/godot/godot-multiplayer-engineer.md +298 -0
- package/assets/agency-agents/game-development/godot/godot-shader-developer.md +267 -0
- package/assets/agency-agents/game-development/level-designer.md +209 -0
- package/assets/agency-agents/game-development/narrative-designer.md +244 -0
- package/assets/agency-agents/game-development/roblox-studio/roblox-avatar-creator.md +298 -0
- package/assets/agency-agents/game-development/roblox-studio/roblox-experience-designer.md +306 -0
- package/assets/agency-agents/game-development/roblox-studio/roblox-systems-scripter.md +326 -0
- package/assets/agency-agents/game-development/technical-artist.md +230 -0
- package/assets/agency-agents/game-development/unity/unity-architect.md +272 -0
- package/assets/agency-agents/game-development/unity/unity-editor-tool-developer.md +311 -0
- package/assets/agency-agents/game-development/unity/unity-multiplayer-engineer.md +322 -0
- package/assets/agency-agents/game-development/unity/unity-shader-graph-artist.md +270 -0
- package/assets/agency-agents/game-development/unreal-engine/unreal-multiplayer-architect.md +314 -0
- package/assets/agency-agents/game-development/unreal-engine/unreal-systems-engineer.md +311 -0
- package/assets/agency-agents/game-development/unreal-engine/unreal-technical-artist.md +257 -0
- package/assets/agency-agents/game-development/unreal-engine/unreal-world-builder.md +274 -0
- package/assets/agency-agents/gis/gis-3d-scene-developer.md +112 -0
- package/assets/agency-agents/gis/gis-analyst.md +92 -0
- package/assets/agency-agents/gis/gis-bim-specialist.md +109 -0
- package/assets/agency-agents/gis/gis-cartography-designer.md +151 -0
- package/assets/agency-agents/gis/gis-drone-reality-mapping.md +121 -0
- package/assets/agency-agents/gis/gis-geoai-ml-engineer.md +106 -0
- package/assets/agency-agents/gis/gis-geoprocessing-specialist.md +98 -0
- package/assets/agency-agents/gis/gis-qa-engineer.md +134 -0
- package/assets/agency-agents/gis/gis-solution-engineer.md +102 -0
- package/assets/agency-agents/gis/gis-spatial-data-engineer.md +98 -0
- package/assets/agency-agents/gis/gis-spatial-data-scientist.md +112 -0
- package/assets/agency-agents/gis/gis-technical-consultant.md +87 -0
- package/assets/agency-agents/gis/gis-web-gis-developer.md +109 -0
- package/assets/agency-agents/healthcare/healthcare-clinical-evidence-agent.md +232 -0
- package/assets/agency-agents/healthcare/healthcare-innovation-strategist.md +434 -0
- package/assets/agency-agents/healthcare/healthcare-sovereign-health-systems-agent.md +313 -0
- package/assets/agency-agents/integrations/mcp-memory/backend-architect-with-memory.md +249 -0
- package/assets/agency-agents/marketing/marketing-aeo-foundations.md +265 -0
- package/assets/agency-agents/marketing/marketing-agentic-search-optimizer.md +314 -0
- package/assets/agency-agents/marketing/marketing-ai-citation-strategist.md +173 -0
- package/assets/agency-agents/marketing/marketing-app-store-optimizer.md +322 -0
- package/assets/agency-agents/marketing/marketing-baidu-seo-specialist.md +227 -0
- package/assets/agency-agents/marketing/marketing-bilibili-content-strategist.md +200 -0
- package/assets/agency-agents/marketing/marketing-book-co-author.md +111 -0
- package/assets/agency-agents/marketing/marketing-carousel-growth-engine.md +200 -0
- package/assets/agency-agents/marketing/marketing-china-ecommerce-operator.md +284 -0
- package/assets/agency-agents/marketing/marketing-china-market-localization-strategist.md +284 -0
- package/assets/agency-agents/marketing/marketing-content-creator.md +55 -0
- package/assets/agency-agents/marketing/marketing-cross-border-ecommerce.md +260 -0
- package/assets/agency-agents/marketing/marketing-douyin-strategist.md +150 -0
- package/assets/agency-agents/marketing/marketing-email-strategist.md +250 -0
- package/assets/agency-agents/marketing/marketing-global-podcast-strategist.md +207 -0
- package/assets/agency-agents/marketing/marketing-growth-hacker.md +55 -0
- package/assets/agency-agents/marketing/marketing-instagram-curator.md +114 -0
- package/assets/agency-agents/marketing/marketing-kuaishou-strategist.md +224 -0
- package/assets/agency-agents/marketing/marketing-linkedin-content-creator.md +215 -0
- package/assets/agency-agents/marketing/marketing-livestream-commerce-coach.md +306 -0
- package/assets/agency-agents/marketing/marketing-multi-platform-publisher.md +218 -0
- package/assets/agency-agents/marketing/marketing-podcast-strategist.md +278 -0
- package/assets/agency-agents/marketing/marketing-pr-communications-manager.md +474 -0
- package/assets/agency-agents/marketing/marketing-private-domain-operator.md +309 -0
- package/assets/agency-agents/marketing/marketing-reddit-community-builder.md +124 -0
- package/assets/agency-agents/marketing/marketing-seo-specialist.md +371 -0
- package/assets/agency-agents/marketing/marketing-short-video-editing-coach.md +413 -0
- package/assets/agency-agents/marketing/marketing-social-media-strategist.md +126 -0
- package/assets/agency-agents/marketing/marketing-tiktok-strategist.md +126 -0
- package/assets/agency-agents/marketing/marketing-twitter-engager.md +127 -0
- package/assets/agency-agents/marketing/marketing-video-optimization-specialist.md +120 -0
- package/assets/agency-agents/marketing/marketing-wechat-official-account.md +146 -0
- package/assets/agency-agents/marketing/marketing-weibo-strategist.md +241 -0
- package/assets/agency-agents/marketing/marketing-x-twitter-intelligence-analyst.md +162 -0
- package/assets/agency-agents/marketing/marketing-xiaohongshu-specialist.md +139 -0
- package/assets/agency-agents/marketing/marketing-zhihu-strategist.md +163 -0
- package/assets/agency-agents/paid-media/paid-media-auditor.md +72 -0
- package/assets/agency-agents/paid-media/paid-media-creative-strategist.md +72 -0
- package/assets/agency-agents/paid-media/paid-media-paid-social-strategist.md +72 -0
- package/assets/agency-agents/paid-media/paid-media-ppc-strategist.md +72 -0
- package/assets/agency-agents/paid-media/paid-media-programmatic-buyer.md +72 -0
- package/assets/agency-agents/paid-media/paid-media-search-query-analyst.md +72 -0
- package/assets/agency-agents/paid-media/paid-media-tracking-specialist.md +72 -0
- package/assets/agency-agents/product/product-behavioral-nudge-engine.md +81 -0
- package/assets/agency-agents/product/product-feedback-synthesizer.md +120 -0
- package/assets/agency-agents/product/product-manager.md +470 -0
- package/assets/agency-agents/product/product-sprint-prioritizer.md +155 -0
- package/assets/agency-agents/product/product-trend-researcher.md +160 -0
- package/assets/agency-agents/project-management/project-management-experiment-tracker.md +199 -0
- package/assets/agency-agents/project-management/project-management-jira-workflow-steward.md +231 -0
- package/assets/agency-agents/project-management/project-management-meeting-notes-specialist.md +96 -0
- package/assets/agency-agents/project-management/project-management-project-shepherd.md +195 -0
- package/assets/agency-agents/project-management/project-management-studio-operations.md +201 -0
- package/assets/agency-agents/project-management/project-management-studio-producer.md +204 -0
- package/assets/agency-agents/project-management/project-manager-senior.md +136 -0
- package/assets/agency-agents/sales/sales-account-strategist.md +228 -0
- package/assets/agency-agents/sales/sales-coach.md +272 -0
- package/assets/agency-agents/sales/sales-deal-strategist.md +181 -0
- package/assets/agency-agents/sales/sales-discovery-coach.md +226 -0
- package/assets/agency-agents/sales/sales-engineer.md +183 -0
- package/assets/agency-agents/sales/sales-offer-lead-gen-strategist.md +258 -0
- package/assets/agency-agents/sales/sales-outbound-strategist.md +202 -0
- package/assets/agency-agents/sales/sales-pipeline-analyst.md +268 -0
- package/assets/agency-agents/sales/sales-proposal-strategist.md +218 -0
- package/assets/agency-agents/security/security-ai-generated-code-auditor.md +208 -0
- package/assets/agency-agents/security/security-appsec-engineer.md +492 -0
- package/assets/agency-agents/security/security-architect.md +305 -0
- package/assets/agency-agents/security/security-blockchain-security-auditor.md +464 -0
- package/assets/agency-agents/security/security-cloud-security-architect.md +524 -0
- package/assets/agency-agents/security/security-compliance-auditor.md +159 -0
- package/assets/agency-agents/security/security-incident-responder.md +438 -0
- package/assets/agency-agents/security/security-penetration-tester.md +400 -0
- package/assets/agency-agents/security/security-secrets-credential-engineer.md +177 -0
- package/assets/agency-agents/security/security-senior-secops.md +751 -0
- package/assets/agency-agents/security/security-threat-detection-engineer.md +535 -0
- package/assets/agency-agents/security/security-threat-intelligence-analyst.md +645 -0
- package/assets/agency-agents/spatial-computing/macos-spatial-metal-engineer.md +338 -0
- package/assets/agency-agents/spatial-computing/terminal-integration-specialist.md +71 -0
- package/assets/agency-agents/spatial-computing/visionos-spatial-engineer.md +55 -0
- package/assets/agency-agents/spatial-computing/xr-cockpit-interaction-specialist.md +33 -0
- package/assets/agency-agents/spatial-computing/xr-immersive-developer.md +33 -0
- package/assets/agency-agents/spatial-computing/xr-interface-architect.md +33 -0
- package/assets/agency-agents/specialized/accounts-payable-agent.md +186 -0
- package/assets/agency-agents/specialized/agentic-identity-trust.md +388 -0
- package/assets/agency-agents/specialized/agents-orchestrator.md +368 -0
- package/assets/agency-agents/specialized/automation-governance-architect.md +217 -0
- package/assets/agency-agents/specialized/business-strategist.md +489 -0
- package/assets/agency-agents/specialized/change-management-consultant.md +498 -0
- package/assets/agency-agents/specialized/chief-financial-officer.md +389 -0
- package/assets/agency-agents/specialized/corporate-training-designer.md +193 -0
- package/assets/agency-agents/specialized/customer-service.md +399 -0
- package/assets/agency-agents/specialized/customer-success-manager.md +461 -0
- package/assets/agency-agents/specialized/data-consolidation-agent.md +61 -0
- package/assets/agency-agents/specialized/data-privacy-officer.md +413 -0
- package/assets/agency-agents/specialized/esg-sustainability-officer.md +397 -0
- package/assets/agency-agents/specialized/government-digital-presales-consultant.md +364 -0
- package/assets/agency-agents/specialized/grant-writer.md +512 -0
- package/assets/agency-agents/specialized/healthcare-aging-parent-care-companion.md +415 -0
- package/assets/agency-agents/specialized/healthcare-customer-service.md +390 -0
- package/assets/agency-agents/specialized/healthcare-marketing-compliance.md +396 -0
- package/assets/agency-agents/specialized/hospitality-guest-services.md +604 -0
- package/assets/agency-agents/specialized/hr-onboarding.md +452 -0
- package/assets/agency-agents/specialized/identity-graph-operator.md +261 -0
- package/assets/agency-agents/specialized/language-translator.md +265 -0
- package/assets/agency-agents/specialized/legal-billing-time-tracking.md +570 -0
- package/assets/agency-agents/specialized/legal-client-intake.md +493 -0
- package/assets/agency-agents/specialized/legal-document-review.md +455 -0
- package/assets/agency-agents/specialized/loan-officer-assistant.md +556 -0
- package/assets/agency-agents/specialized/lsp-index-engineer.md +315 -0
- package/assets/agency-agents/specialized/ma-integration-manager.md +428 -0
- package/assets/agency-agents/specialized/medical-billing-coding-specialist.md +492 -0
- package/assets/agency-agents/specialized/operations-manager.md +400 -0
- package/assets/agency-agents/specialized/organizational-psychologist.md +392 -0
- package/assets/agency-agents/specialized/personal-growth-mentor.md +160 -0
- package/assets/agency-agents/specialized/real-estate-buyer-seller.md +597 -0
- package/assets/agency-agents/specialized/recruitment-specialist.md +510 -0
- package/assets/agency-agents/specialized/report-distribution-agent.md +66 -0
- package/assets/agency-agents/specialized/resume-tailor.md +231 -0
- package/assets/agency-agents/specialized/retail-customer-returns.md +567 -0
- package/assets/agency-agents/specialized/sales-data-extraction-agent.md +68 -0
- package/assets/agency-agents/specialized/sales-outreach.md +426 -0
- package/assets/agency-agents/specialized/specialized-chief-of-staff.md +280 -0
- package/assets/agency-agents/specialized/specialized-civil-engineer.md +357 -0
- package/assets/agency-agents/specialized/specialized-codebase-archaeologist.md +342 -0
- package/assets/agency-agents/specialized/specialized-cultural-intelligence-strategist.md +89 -0
- package/assets/agency-agents/specialized/specialized-developer-advocate.md +318 -0
- package/assets/agency-agents/specialized/specialized-document-generator.md +56 -0
- package/assets/agency-agents/specialized/specialized-fedramp-rmf-compliance.md +379 -0
- package/assets/agency-agents/specialized/specialized-french-consulting-market.md +195 -0
- package/assets/agency-agents/specialized/specialized-korean-business-navigator.md +217 -0
- package/assets/agency-agents/specialized/specialized-mcp-builder.md +249 -0
- package/assets/agency-agents/specialized/specialized-model-qa.md +489 -0
- package/assets/agency-agents/specialized/specialized-pricing-analyst.md +244 -0
- package/assets/agency-agents/specialized/specialized-salesforce-architect.md +183 -0
- package/assets/agency-agents/specialized/specialized-strategy-duel-agent.md +131 -0
- package/assets/agency-agents/specialized/specialized-workflow-architect.md +598 -0
- package/assets/agency-agents/specialized/study-abroad-advisor.md +283 -0
- package/assets/agency-agents/specialized/supply-chain-strategist.md +583 -0
- package/assets/agency-agents/specialized/zk-steward.md +212 -0
- package/assets/agency-agents/support/support-analytics-reporter.md +366 -0
- package/assets/agency-agents/support/support-executive-summary-generator.md +213 -0
- package/assets/agency-agents/support/support-finance-tracker.md +443 -0
- package/assets/agency-agents/support/support-infrastructure-maintainer.md +619 -0
- package/assets/agency-agents/support/support-legal-compliance-checker.md +589 -0
- package/assets/agency-agents/support/support-support-responder.md +586 -0
- package/assets/agency-agents/testing/testing-accessibility-auditor.md +317 -0
- package/assets/agency-agents/testing/testing-api-tester.md +307 -0
- package/assets/agency-agents/testing/testing-evidence-collector.md +211 -0
- package/assets/agency-agents/testing/testing-performance-benchmarker.md +269 -0
- package/assets/agency-agents/testing/testing-reality-checker.md +250 -0
- package/assets/agency-agents/testing/testing-test-automation-engineer.md +180 -0
- package/assets/agency-agents/testing/testing-test-results-analyzer.md +306 -0
- package/assets/agency-agents/testing/testing-tool-evaluator.md +395 -0
- package/assets/agency-agents/testing/testing-workflow-optimizer.md +451 -0
- package/assets/branding/banner.png +0 -0
- package/assets/branding/banner.svg +52 -0
- package/assets/branding/banner.txt +4 -0
- package/assets/branding/dsh-logo.png +0 -0
- package/assets/screenshots/agent-roster-en.png +0 -0
- package/assets/screenshots/agent-roster.png +0 -0
- package/assets/screenshots/expert-picker.png +0 -0
- package/assets/screenshots/summon-prompt.png +0 -0
- package/cordis.patch.yml +8 -0
- package/lib/client.js +7238 -0
- package/lib/i18n-BL3miiHZ.js +463 -0
- package/lib/index.d.ts +95 -0
- package/lib/index.js +504 -0
- package/lib/remote.d.ts +20 -0
- package/lib/remote.js +179 -0
- package/package.json +114 -0
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
import { settingsNamespace } from "@deepseek-ai/dsh-settings";
|
|
2
|
+
//#region src/names.ts
|
|
3
|
+
/** 分区目录名 → 中文分区名。 */
|
|
4
|
+
const ZH_DIVISION = {
|
|
5
|
+
academic: "学术",
|
|
6
|
+
design: "设计",
|
|
7
|
+
engineering: "工程",
|
|
8
|
+
finance: "金融",
|
|
9
|
+
"game-development": "游戏开发",
|
|
10
|
+
gis: "地理信息",
|
|
11
|
+
healthcare: "医疗健康",
|
|
12
|
+
marketing: "市场营销",
|
|
13
|
+
"paid-media": "付费媒体",
|
|
14
|
+
product: "产品",
|
|
15
|
+
"project-management": "项目管理",
|
|
16
|
+
sales: "销售",
|
|
17
|
+
security: "安全",
|
|
18
|
+
"spatial-computing": "空间计算",
|
|
19
|
+
specialized: "专业",
|
|
20
|
+
support: "支持",
|
|
21
|
+
testing: "测试"
|
|
22
|
+
};
|
|
23
|
+
/** 分区目录名 → 英文分区名。 */
|
|
24
|
+
const EN_DIVISION = {
|
|
25
|
+
academic: "Academic",
|
|
26
|
+
design: "Design",
|
|
27
|
+
engineering: "Engineering",
|
|
28
|
+
finance: "Finance",
|
|
29
|
+
"game-development": "Game Development",
|
|
30
|
+
gis: "GIS",
|
|
31
|
+
healthcare: "Healthcare",
|
|
32
|
+
marketing: "Marketing",
|
|
33
|
+
"paid-media": "Paid Media",
|
|
34
|
+
product: "Product",
|
|
35
|
+
"project-management": "Project Management",
|
|
36
|
+
sales: "Sales",
|
|
37
|
+
security: "Security",
|
|
38
|
+
"spatial-computing": "Spatial Computing",
|
|
39
|
+
specialized: "Specialized",
|
|
40
|
+
support: "Support",
|
|
41
|
+
testing: "Testing"
|
|
42
|
+
};
|
|
43
|
+
/** 智能体 slug(文件名去 .md)→ 中文名(现实岗位)。缺省时回退英文 frontmatter name。 */
|
|
44
|
+
const ZH_NAME = {
|
|
45
|
+
"academic-anthropologist": "人类学家",
|
|
46
|
+
"academic-geographer": "地理学家",
|
|
47
|
+
"academic-historian": "历史学家",
|
|
48
|
+
"academic-narratologist": "叙事学家",
|
|
49
|
+
"academic-psychologist": "心理学家",
|
|
50
|
+
"academic-statistician": "统计学家",
|
|
51
|
+
"design-brand-guardian": "品牌视觉设计师",
|
|
52
|
+
"design-image-prompt-engineer": "AI 图像设计师",
|
|
53
|
+
"design-inclusive-visuals-specialist": "无障碍设计师",
|
|
54
|
+
"design-persona-walkthrough": "用户体验设计师",
|
|
55
|
+
"design-ui-designer": "UI 设计师",
|
|
56
|
+
"design-ui-finish-gate-reviewer": "UI 视觉验收设计师",
|
|
57
|
+
"design-ux-architect": "UX 架构师",
|
|
58
|
+
"design-ux-researcher": "UX 研究员",
|
|
59
|
+
"design-visual-storyteller": "视觉传达设计师",
|
|
60
|
+
"design-whimsy-injector": "创意设计师",
|
|
61
|
+
"engineering-ai-data-remediation-engineer": "AI 数据治理工程师",
|
|
62
|
+
"engineering-ai-engineer": "AI 工程师",
|
|
63
|
+
"engineering-api-platform-engineer": "API 平台工程师",
|
|
64
|
+
"engineering-autonomous-optimization-architect": "自动化优化架构师",
|
|
65
|
+
"engineering-backend-architect": "后端架构师",
|
|
66
|
+
"engineering-cms-developer": "CMS 开发者",
|
|
67
|
+
"engineering-code-reviewer": "代码审查工程师",
|
|
68
|
+
"engineering-codebase-onboarding-engineer": "工程效率工程师",
|
|
69
|
+
"engineering-data-engineer": "数据工程师",
|
|
70
|
+
"engineering-data-visualization-engineer": "数据可视化工程师",
|
|
71
|
+
"engineering-database-optimizer": "数据库性能工程师",
|
|
72
|
+
"engineering-database-reliability-engineer": "数据库可靠性工程师",
|
|
73
|
+
"engineering-desktop-app-engineer": "桌面应用工程师",
|
|
74
|
+
"engineering-developer-tooling-engineer": "开发者工具工程师",
|
|
75
|
+
"engineering-devops-automator": "DevOps 自动化工程师",
|
|
76
|
+
"engineering-drupal-performance": "Drupal 性能工程师",
|
|
77
|
+
"engineering-drupal-shopping-cart": "Drupal 购物车工程师",
|
|
78
|
+
"engineering-email-intelligence-engineer": "邮件系统工程师",
|
|
79
|
+
"engineering-embedded-firmware-engineer": "嵌入式固件工程师",
|
|
80
|
+
"engineering-feishu-integration-developer": "飞书集成开发工程师",
|
|
81
|
+
"engineering-filament-optimization-specialist": "Filament 后台优化专家",
|
|
82
|
+
"engineering-finops-engineer": "FinOps 工程师",
|
|
83
|
+
"engineering-frontend-developer": "前端开发者",
|
|
84
|
+
"engineering-gaussdb-expert": "GaussDB 专家工程师",
|
|
85
|
+
"engineering-git-workflow-master": "Git 工作流工程师",
|
|
86
|
+
"engineering-i18n-engineer": "国际化工程师",
|
|
87
|
+
"engineering-identity-access-engineer": "身份与访问管理工程师",
|
|
88
|
+
"engineering-incident-response-commander": "故障应急工程师",
|
|
89
|
+
"engineering-iot-fleet-engineer": "物联网设备工程师",
|
|
90
|
+
"engineering-it-service-manager": "IT 服务经理",
|
|
91
|
+
"engineering-llm-post-training-engineer": "LLM 后训练工程师",
|
|
92
|
+
"engineering-minimal-change-engineer": "低风险变更工程师",
|
|
93
|
+
"engineering-mobile-app-builder": "移动应用开发工程师",
|
|
94
|
+
"engineering-mobile-release-engineer": "移动发布工程师",
|
|
95
|
+
"engineering-multi-agent-systems-architect": "多智能体系统架构师",
|
|
96
|
+
"engineering-network-engineer": "网络工程师",
|
|
97
|
+
"engineering-orgscript-engineer": "OrgScript 工程师",
|
|
98
|
+
"engineering-payments-billing-engineer": "支付计费工程师",
|
|
99
|
+
"engineering-privacy-engineer": "隐私工程师",
|
|
100
|
+
"engineering-prompt-engineer": "提示词工程师",
|
|
101
|
+
"engineering-rag-pipeline-engineer": "RAG 管线工程师",
|
|
102
|
+
"engineering-rapid-prototyper": "快速原型工程师",
|
|
103
|
+
"engineering-realtime-collaboration-engineer": "实时协作工程师",
|
|
104
|
+
"engineering-rust-refactoring-specialist": "Rust 重构工程师",
|
|
105
|
+
"engineering-search-relevance-engineer": "搜索相关性工程师",
|
|
106
|
+
"engineering-section-508-specialist": "无障碍合规工程师",
|
|
107
|
+
"engineering-senior-developer": "高级开发者",
|
|
108
|
+
"engineering-software-architect": "软件架构师",
|
|
109
|
+
"engineering-solidity-smart-contract-engineer": "Solidity 智能合约工程师",
|
|
110
|
+
"engineering-sre": "SRE(站点可靠性工程师)",
|
|
111
|
+
"engineering-technical-writer": "技术文档工程师",
|
|
112
|
+
"engineering-uswds-developer": "USWDS 开发者",
|
|
113
|
+
"engineering-video-streaming-engineer": "视频流工程师",
|
|
114
|
+
"engineering-voice-ai-integration-engineer": "语音 AI 集成工程师",
|
|
115
|
+
"engineering-webassembly-engineer": "WebAssembly 工程师",
|
|
116
|
+
"engineering-wechat-mini-program-developer": "微信小程序开发者",
|
|
117
|
+
"engineering-wordpress-performance": "WordPress 性能工程师",
|
|
118
|
+
"engineering-wordpress-shopping-cart": "WordPress 购物车工程师",
|
|
119
|
+
"finance-bookkeeper-controller": "财务会计主管",
|
|
120
|
+
"finance-financial-analyst": "财务分析师",
|
|
121
|
+
"finance-fpa-analyst": "财务计划分析师",
|
|
122
|
+
"finance-investment-researcher": "投资研究员",
|
|
123
|
+
"finance-tax-strategist": "税务筹划师",
|
|
124
|
+
"economy-designer": "经济系统设计师",
|
|
125
|
+
"game-audio-engineer": "游戏音频工程师",
|
|
126
|
+
"game-designer": "游戏设计师",
|
|
127
|
+
"level-designer": "关卡设计师",
|
|
128
|
+
"narrative-designer": "叙事设计师",
|
|
129
|
+
"technical-artist": "技术美术",
|
|
130
|
+
"gis-3d-scene-developer": "3D 场景开发者",
|
|
131
|
+
"gis-analyst": "GIS 分析师",
|
|
132
|
+
"gis-bim-specialist": "BIM/GIS 专家",
|
|
133
|
+
"gis-cartography-designer": "制图设计师",
|
|
134
|
+
"gis-drone-reality-mapping": "无人机/实景测绘专家",
|
|
135
|
+
"gis-geoai-ml-engineer": "地理 AI/ML 工程师",
|
|
136
|
+
"gis-geoprocessing-specialist": "地理处理专家",
|
|
137
|
+
"gis-qa-engineer": "GIS QA 工程师",
|
|
138
|
+
"gis-solution-engineer": "解决方案工程师",
|
|
139
|
+
"gis-spatial-data-engineer": "空间数据工程师",
|
|
140
|
+
"gis-spatial-data-scientist": "空间数据科学家",
|
|
141
|
+
"gis-technical-consultant": "技术顾问",
|
|
142
|
+
"gis-web-gis-developer": "Web GIS 开发者",
|
|
143
|
+
"healthcare-clinical-evidence-agent": "循证医学研究员",
|
|
144
|
+
"healthcare-innovation-strategist": "医疗创新战略顾问",
|
|
145
|
+
"healthcare-sovereign-health-systems-agent": "医疗系统治理顾问",
|
|
146
|
+
"marketing-aeo-foundations": "AEO 搜索优化师",
|
|
147
|
+
"marketing-agentic-search-optimizer": "AI 搜索优化师",
|
|
148
|
+
"marketing-ai-citation-strategist": "AI 引用优化师",
|
|
149
|
+
"marketing-app-store-optimizer": "应用商店优化师",
|
|
150
|
+
"marketing-baidu-seo-specialist": "百度 SEO 专家",
|
|
151
|
+
"marketing-bilibili-content-strategist": "B站内容运营专家",
|
|
152
|
+
"marketing-book-co-author": "图书策划编辑",
|
|
153
|
+
"marketing-carousel-growth-engine": "内容增长运营专家",
|
|
154
|
+
"marketing-china-ecommerce-operator": "中国电商运营",
|
|
155
|
+
"marketing-china-market-localization-strategist": "中国市场本地化专家",
|
|
156
|
+
"marketing-content-creator": "内容创作者",
|
|
157
|
+
"marketing-cross-border-ecommerce": "跨境电商专家",
|
|
158
|
+
"marketing-douyin-strategist": "抖音运营专家",
|
|
159
|
+
"marketing-email-strategist": "邮件营销专家",
|
|
160
|
+
"marketing-global-podcast-strategist": "播客运营专家",
|
|
161
|
+
"marketing-growth-hacker": "增长营销专家",
|
|
162
|
+
"marketing-instagram-curator": "Instagram 运营",
|
|
163
|
+
"marketing-kuaishou-strategist": "快手运营专家",
|
|
164
|
+
"marketing-linkedin-content-creator": "LinkedIn 内容创作者",
|
|
165
|
+
"marketing-livestream-commerce-coach": "直播电商运营专家",
|
|
166
|
+
"marketing-multi-platform-publisher": "多平台内容运营专家",
|
|
167
|
+
"marketing-podcast-strategist": "播客运营专家",
|
|
168
|
+
"marketing-pr-communications-manager": "公关传播经理",
|
|
169
|
+
"marketing-private-domain-operator": "私域运营",
|
|
170
|
+
"marketing-reddit-community-builder": "Reddit 社区运营",
|
|
171
|
+
"marketing-seo-specialist": "SEO 专家",
|
|
172
|
+
"marketing-short-video-editing-coach": "短视频剪辑师",
|
|
173
|
+
"marketing-social-media-strategist": "社媒运营专家",
|
|
174
|
+
"marketing-tiktok-strategist": "TikTok 运营专家",
|
|
175
|
+
"marketing-twitter-engager": "Twitter 互动运营",
|
|
176
|
+
"marketing-video-optimization-specialist": "视频优化专家",
|
|
177
|
+
"marketing-wechat-official-account": "公众号运营",
|
|
178
|
+
"marketing-weibo-strategist": "微博运营专家",
|
|
179
|
+
"marketing-x-twitter-intelligence-analyst": "X/Twitter 舆情分析师",
|
|
180
|
+
"marketing-xiaohongshu-specialist": "小红书运营专家",
|
|
181
|
+
"marketing-zhihu-strategist": "知乎运营专家",
|
|
182
|
+
"paid-media-auditor": "广告投放审计师",
|
|
183
|
+
"paid-media-creative-strategist": "广告创意策划师",
|
|
184
|
+
"paid-media-paid-social-strategist": "付费社媒投放专家",
|
|
185
|
+
"paid-media-ppc-strategist": "PPC 投放优化师",
|
|
186
|
+
"paid-media-programmatic-buyer": "程序化广告投放师",
|
|
187
|
+
"paid-media-search-query-analyst": "搜索词分析师",
|
|
188
|
+
"paid-media-tracking-specialist": "广告归因分析师",
|
|
189
|
+
"product-behavioral-nudge-engine": "增长产品经理",
|
|
190
|
+
"product-feedback-synthesizer": "用户反馈研究员",
|
|
191
|
+
"product-manager": "产品经理",
|
|
192
|
+
"product-sprint-prioritizer": "需求优先级分析师",
|
|
193
|
+
"product-trend-researcher": "趋势研究员",
|
|
194
|
+
"project-management-experiment-tracker": "实验项目运营",
|
|
195
|
+
"project-management-jira-workflow-steward": "Jira 流程管理员",
|
|
196
|
+
"project-management-meeting-notes-specialist": "项目记录专员",
|
|
197
|
+
"project-management-project-shepherd": "项目推进专员",
|
|
198
|
+
"project-management-studio-operations": "工作室运营",
|
|
199
|
+
"project-management-studio-producer": "工作室制片人",
|
|
200
|
+
"project-manager-senior": "高级项目经理",
|
|
201
|
+
"sales-account-strategist": "大客户经理",
|
|
202
|
+
"sales-coach": "销售培训师",
|
|
203
|
+
"sales-deal-strategist": "商务谈判顾问",
|
|
204
|
+
"sales-discovery-coach": "售前需求顾问",
|
|
205
|
+
"sales-engineer": "销售工程师",
|
|
206
|
+
"sales-offer-lead-gen-strategist": "销售获客专员",
|
|
207
|
+
"sales-outbound-strategist": "外呼销售专员",
|
|
208
|
+
"sales-pipeline-analyst": "销售管线分析师",
|
|
209
|
+
"sales-proposal-strategist": "方案提案顾问",
|
|
210
|
+
"security-ai-generated-code-auditor": "AI 生成代码安全审计师",
|
|
211
|
+
"security-appsec-engineer": "应用安全工程师",
|
|
212
|
+
"security-architect": "安全架构师",
|
|
213
|
+
"security-blockchain-security-auditor": "区块链安全审计师",
|
|
214
|
+
"security-cloud-security-architect": "云安全架构师",
|
|
215
|
+
"security-compliance-auditor": "合规审计师",
|
|
216
|
+
"security-incident-responder": "应急响应工程师",
|
|
217
|
+
"security-penetration-tester": "渗透测试工程师",
|
|
218
|
+
"security-secrets-credential-engineer": "密钥与凭据治理工程师",
|
|
219
|
+
"security-senior-secops": "高级安全运营工程师",
|
|
220
|
+
"security-threat-detection-engineer": "威胁检测工程师",
|
|
221
|
+
"security-threat-intelligence-analyst": "威胁情报分析师",
|
|
222
|
+
"macos-spatial-metal-engineer": "macOS 空间/Metal 工程师",
|
|
223
|
+
"terminal-integration-specialist": "终端集成专家",
|
|
224
|
+
"visionos-spatial-engineer": "visionOS 空间工程师",
|
|
225
|
+
"xr-cockpit-interaction-specialist": "XR 座舱交互专家",
|
|
226
|
+
"xr-immersive-developer": "XR 沉浸式开发者",
|
|
227
|
+
"xr-interface-architect": "XR 界面架构师",
|
|
228
|
+
"accounts-payable-agent": "应付账款会计",
|
|
229
|
+
"agentic-identity-trust": "身份与信任架构师",
|
|
230
|
+
"agents-orchestrator": "AI 流程编排师",
|
|
231
|
+
"automation-governance-architect": "自动化治理架构师",
|
|
232
|
+
"business-strategist": "商业策略顾问",
|
|
233
|
+
"change-management-consultant": "变革管理顾问",
|
|
234
|
+
"chief-financial-officer": "首席财务官",
|
|
235
|
+
"corporate-training-designer": "企业培训师",
|
|
236
|
+
"customer-service": "客户服务",
|
|
237
|
+
"customer-success-manager": "客户成功经理",
|
|
238
|
+
"data-consolidation-agent": "数据整合专员",
|
|
239
|
+
"data-privacy-officer": "数据隐私官",
|
|
240
|
+
"esg-sustainability-officer": "ESG 与可持续发展官",
|
|
241
|
+
"government-digital-presales-consultant": "政务数字化售前顾问",
|
|
242
|
+
"grant-writer": "基金申报专员",
|
|
243
|
+
"healthcare-aging-parent-care-companion": "老年照护顾问",
|
|
244
|
+
"healthcare-customer-service": "医疗客服",
|
|
245
|
+
"healthcare-marketing-compliance": "医疗营销合规专家",
|
|
246
|
+
"hospitality-guest-services": "酒店宾客服务",
|
|
247
|
+
"hr-onboarding": "HR 入职专员",
|
|
248
|
+
"identity-graph-operator": "身份图谱运营",
|
|
249
|
+
"language-translator": "翻译专员",
|
|
250
|
+
"legal-billing-time-tracking": "法务计费专员",
|
|
251
|
+
"legal-client-intake": "法务客户接待专员",
|
|
252
|
+
"legal-document-review": "法务文档审核员",
|
|
253
|
+
"loan-officer-assistant": "信贷专员助理",
|
|
254
|
+
"lsp-index-engineer": "LSP/索引工程师",
|
|
255
|
+
"ma-integration-manager": "并购整合经理",
|
|
256
|
+
"medical-billing-coding-specialist": "医疗计费编码专家",
|
|
257
|
+
"operations-manager": "运营经理",
|
|
258
|
+
"organizational-psychologist": "组织心理学家",
|
|
259
|
+
"personal-growth-mentor": "职业发展导师",
|
|
260
|
+
"real-estate-buyer-seller": "房产买卖顾问",
|
|
261
|
+
"recruitment-specialist": "招聘专员",
|
|
262
|
+
"report-distribution-agent": "报告分发专员",
|
|
263
|
+
"resume-tailor": "简历优化顾问",
|
|
264
|
+
"retail-customer-returns": "零售售后客服",
|
|
265
|
+
"sales-data-extraction-agent": "销售数据专员",
|
|
266
|
+
"sales-outreach": "销售拓展专员",
|
|
267
|
+
"specialized-chief-of-staff": "幕僚长",
|
|
268
|
+
"specialized-civil-engineer": "土木工程师",
|
|
269
|
+
"specialized-codebase-archaeologist": "遗留系统工程师",
|
|
270
|
+
"specialized-cultural-intelligence-strategist": "跨文化咨询顾问",
|
|
271
|
+
"specialized-developer-advocate": "开发者布道师",
|
|
272
|
+
"specialized-document-generator": "文档工程师",
|
|
273
|
+
"specialized-fedramp-rmf-compliance": "FedRAMP 与 RMF 合规工程师",
|
|
274
|
+
"specialized-french-consulting-market": "法国市场咨询顾问",
|
|
275
|
+
"specialized-korean-business-navigator": "韩国市场咨询顾问",
|
|
276
|
+
"specialized-mcp-builder": "MCP 集成工程师",
|
|
277
|
+
"specialized-model-qa": "模型质量评估工程师",
|
|
278
|
+
"specialized-pricing-analyst": "定价分析师",
|
|
279
|
+
"specialized-salesforce-architect": "Salesforce 架构师",
|
|
280
|
+
"specialized-strategy-duel-agent": "竞争战略分析师",
|
|
281
|
+
"specialized-workflow-architect": "工作流架构师",
|
|
282
|
+
"study-abroad-advisor": "留学顾问",
|
|
283
|
+
"supply-chain-strategist": "供应链规划师",
|
|
284
|
+
"zk-steward": "零知识证明工程师",
|
|
285
|
+
"support-analytics-reporter": "分析报表专员",
|
|
286
|
+
"support-executive-summary-generator": "管理报告专员",
|
|
287
|
+
"support-finance-tracker": "财务跟踪专员",
|
|
288
|
+
"support-infrastructure-maintainer": "基础设施运维工程师",
|
|
289
|
+
"support-legal-compliance-checker": "合规检查专员",
|
|
290
|
+
"support-support-responder": "客服响应专员",
|
|
291
|
+
"testing-accessibility-auditor": "无障碍测试工程师",
|
|
292
|
+
"testing-api-tester": "API 测试工程师",
|
|
293
|
+
"testing-evidence-collector": "质量记录专员",
|
|
294
|
+
"testing-performance-benchmarker": "性能基准测试工程师",
|
|
295
|
+
"testing-reality-checker": "验收测试工程师",
|
|
296
|
+
"testing-test-automation-engineer": "测试自动化工程师",
|
|
297
|
+
"testing-test-results-analyzer": "测试结果分析师",
|
|
298
|
+
"testing-tool-evaluator": "测试工具评估工程师",
|
|
299
|
+
"testing-workflow-optimizer": "测试流程优化工程师",
|
|
300
|
+
"blender-addon-engineer": "Blender 插件工程师",
|
|
301
|
+
"godot-gameplay-scripter": "Godot 玩法脚本工程师",
|
|
302
|
+
"godot-multiplayer-engineer": "Godot 多人联机工程师",
|
|
303
|
+
"godot-shader-developer": "Godot 着色器开发者",
|
|
304
|
+
"roblox-avatar-creator": "Roblox 虚拟形象创作者",
|
|
305
|
+
"roblox-experience-designer": "Roblox 体验设计师",
|
|
306
|
+
"roblox-systems-scripter": "Roblox 系统脚本工程师",
|
|
307
|
+
"unity-architect": "Unity 架构师",
|
|
308
|
+
"unity-editor-tool-developer": "Unity 编辑器工具开发者",
|
|
309
|
+
"unity-multiplayer-engineer": "Unity 多人联机工程师",
|
|
310
|
+
"unity-shader-graph-artist": "Unity 着色器美术",
|
|
311
|
+
"unreal-multiplayer-architect": "Unreal 多人联机架构师",
|
|
312
|
+
"unreal-systems-engineer": "Unreal 系统工程师",
|
|
313
|
+
"unreal-technical-artist": "Unreal 技术美术",
|
|
314
|
+
"unreal-world-builder": "Unreal 世界构建师",
|
|
315
|
+
"backend-architect-with-memory": "资深后端架构师"
|
|
316
|
+
};
|
|
317
|
+
//#endregion
|
|
318
|
+
//#region src/i18n.ts
|
|
319
|
+
/**
|
|
320
|
+
* 宿主侧用户可见文案。zh 为 key 集真相源;en 用 satisfies 校验完整性。
|
|
321
|
+
* 模板占位符使用 {word},与客户端 locale 服务约定一致。
|
|
322
|
+
*/
|
|
323
|
+
/** 简体中文宿主文案(key 集真相源)。 */
|
|
324
|
+
const zhHost = {
|
|
325
|
+
"error.rootMissing": "智能体目录 root 不存在或无法访问:\"{root}\"。请设置环境变量 {env} 或提供正确路径。",
|
|
326
|
+
"error.rootNotDir": "智能体目录 root \"{root}\" 不是目录",
|
|
327
|
+
"error.catalogEmpty": "在 root \"{root}\" 下未发现任何智能体(*.md 文件)。请确认路径正确。",
|
|
328
|
+
"error.catalogLoad": "agency-agents 花名册加载失败:{detail}",
|
|
329
|
+
"error.expertRequired": "必须提供专家 slug 或名称",
|
|
330
|
+
"error.expertAmbiguous": "专家 \"{query}\" 有歧义;候选:{candidates}。请用 list_experts 选择精确 slug。",
|
|
331
|
+
"error.expertMissing": "没有匹配 \"{query}\" 的专家。请调用 list_experts 查看花名册。",
|
|
332
|
+
"error.expertDisabled": "专家 \"{name}\" 已停用",
|
|
333
|
+
"error.summonRequiresAgent": "summon_expert 需要由智能体调用",
|
|
334
|
+
"error.summonManyRequiresAgent": "summon_experts 需要由智能体调用",
|
|
335
|
+
"error.expertsEmpty": "experts 必须是非空数组",
|
|
336
|
+
"error.expertsTooMany": "一次最多召唤 {max} 名专家,当前为 {count}",
|
|
337
|
+
"error.expertEmpty": "第 {index} 个专家不能为空",
|
|
338
|
+
"error.taskEmpty": "第 {index} 个专家任务不能为空",
|
|
339
|
+
"error.taskTooLong": "第 {index} 个专家任务过长({length} 个字符,上限 {max})",
|
|
340
|
+
"error.taskRequired": "专家任务不能为空",
|
|
341
|
+
"error.taskLimit": "专家任务过长({length} 个字符,上限 {max})",
|
|
342
|
+
"error.providerMissing": "子代理 provider \"{provider}\" 未注册",
|
|
343
|
+
"error.providerNoPersona": "子代理 provider \"{provider}\" 不支持专家人格",
|
|
344
|
+
"error.providerNoToolFilter": "子代理 provider \"{provider}\" 无法阻止递归专家委派",
|
|
345
|
+
"error.providerNoMaxDepth": "子代理 provider \"{provider}\" 不支持 maxDepth",
|
|
346
|
+
"error.expertRun": "专家运行以 \"{reason}\" 结束{detail}",
|
|
347
|
+
"error.partialOutput": "\n部分输出:\n{text}",
|
|
348
|
+
"error.maxDepth": "agency-agents 配置 maxDepth 必须是正安全整数",
|
|
349
|
+
"error.settingsMissing": "agency-agents 设置区尚未注册",
|
|
350
|
+
"list.empty": "暂无可用专家。",
|
|
351
|
+
"list.emptyDivision": "没有匹配分区 \"{division}\" 的专家。",
|
|
352
|
+
"list.heading": "{total} 位专家,覆盖 {count} 个分区:",
|
|
353
|
+
"list.group": "## {division}({count})",
|
|
354
|
+
"list.expertFailed": "失败:{error}"
|
|
355
|
+
};
|
|
356
|
+
/** 英文宿主文案,key 完整性由 satisfies 在编译期保证。 */
|
|
357
|
+
const enHost = {
|
|
358
|
+
"error.rootMissing": "Agent catalog root is missing or inaccessible: \"{root}\". Set {env} or provide a valid path.",
|
|
359
|
+
"error.rootNotDir": "Agent catalog root \"{root}\" is not a directory",
|
|
360
|
+
"error.catalogEmpty": "No agents (*.md files) found under root \"{root}\". Check the path.",
|
|
361
|
+
"error.catalogLoad": "agency-agents catalog failed to load: {detail}",
|
|
362
|
+
"error.expertRequired": "expert is required",
|
|
363
|
+
"error.expertAmbiguous": "Ambiguous expert \"{query}\"; candidates: {candidates}. Use list_experts to pick an exact slug.",
|
|
364
|
+
"error.expertMissing": "No expert matched \"{query}\". Call list_experts to see the roster.",
|
|
365
|
+
"error.expertDisabled": "expert \"{name}\" is disabled",
|
|
366
|
+
"error.summonRequiresAgent": "summon_expert requires a calling agent",
|
|
367
|
+
"error.summonManyRequiresAgent": "summon_experts requires a calling agent",
|
|
368
|
+
"error.expertsEmpty": "experts must be a non-empty array",
|
|
369
|
+
"error.expertsTooMany": "summon at most {max} experts at once, got {count}",
|
|
370
|
+
"error.expertEmpty": "expert #{index} must not be empty",
|
|
371
|
+
"error.taskEmpty": "expert task #{index} must not be empty",
|
|
372
|
+
"error.taskTooLong": "expert task #{index} is too long ({length} characters, limit {max})",
|
|
373
|
+
"error.taskRequired": "The expert task must not be empty",
|
|
374
|
+
"error.taskLimit": "The expert task is too long ({length} characters, limit {max})",
|
|
375
|
+
"error.providerMissing": "subagent provider \"{provider}\" is not registered",
|
|
376
|
+
"error.providerNoPersona": "subagent provider \"{provider}\" does not support expert personas",
|
|
377
|
+
"error.providerNoToolFilter": "subagent provider \"{provider}\" cannot prevent recursive expert delegation",
|
|
378
|
+
"error.providerNoMaxDepth": "subagent provider \"{provider}\" does not support maxDepth",
|
|
379
|
+
"error.expertRun": "expert run ended with \"{reason}\"{detail}",
|
|
380
|
+
"error.partialOutput": "\nPartial output:\n{text}",
|
|
381
|
+
"error.maxDepth": "agency-agents config maxDepth must be a positive safe integer",
|
|
382
|
+
"error.settingsMissing": "agency-agents settings section is not registered",
|
|
383
|
+
"list.empty": "No experts available.",
|
|
384
|
+
"list.emptyDivision": "No experts matched division \"{division}\".",
|
|
385
|
+
"list.heading": "{total} experts across {count} divisions:",
|
|
386
|
+
"list.group": "## {division} ({count})",
|
|
387
|
+
"list.expertFailed": "Failed: {error}"
|
|
388
|
+
};
|
|
389
|
+
/** 将未知值收成 zh / en;只有显式 en 才走英文。 */
|
|
390
|
+
function resolveHostLocale(value) {
|
|
391
|
+
return value === "en" ? "en" : "zh";
|
|
392
|
+
}
|
|
393
|
+
/** 按当前语言格式化宿主文案。 */
|
|
394
|
+
function formatHost(locale, key, params) {
|
|
395
|
+
let text = (locale === "en" ? enHost : zhHost)[key];
|
|
396
|
+
if (params !== void 0) for (const [name, value] of Object.entries(params)) text = text.replaceAll("{" + name + "}", String(value));
|
|
397
|
+
return text;
|
|
398
|
+
}
|
|
399
|
+
/** 从宿主 settings 的 locale.preference 读取语言,缺失或异常时回退 zh。 */
|
|
400
|
+
function readHostLocale(ctx) {
|
|
401
|
+
try {
|
|
402
|
+
const section = ctx.settings?.get?.(settingsNamespace("locale"));
|
|
403
|
+
return resolveHostLocale(section?.preference);
|
|
404
|
+
} catch {
|
|
405
|
+
return "zh";
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
/** 分区查询同时认 key、中文名和英文名。 */
|
|
409
|
+
function matchDivision(query, division) {
|
|
410
|
+
const q = query.trim().toLowerCase();
|
|
411
|
+
if (q.length === 0) return false;
|
|
412
|
+
if (division.toLowerCase() === q) return true;
|
|
413
|
+
const zh = ZH_DIVISION[division];
|
|
414
|
+
if (zh !== void 0 && zh.toLowerCase() === q) return true;
|
|
415
|
+
const en = EN_DIVISION[division];
|
|
416
|
+
if (en !== void 0 && en.toLowerCase() === q) return true;
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
419
|
+
/** 按当前语言取分区显示名。 */
|
|
420
|
+
function localizedDivision(division, locale) {
|
|
421
|
+
if (locale === "en") return EN_DIVISION[division] ?? division;
|
|
422
|
+
return ZH_DIVISION[division] ?? division;
|
|
423
|
+
}
|
|
424
|
+
/** 按当前语言取专家显示名。 */
|
|
425
|
+
function localizedExpertName(expert, locale) {
|
|
426
|
+
return locale === "en" ? expert.nameEn : expert.name;
|
|
427
|
+
}
|
|
428
|
+
/** 按当前语言取专家简介;英文缺失时回退中文。 */
|
|
429
|
+
function localizedExpertDescription(expert, locale) {
|
|
430
|
+
return locale === "en" && expert.descriptionEn !== void 0 && expert.descriptionEn !== "" ? expert.descriptionEn : expert.description;
|
|
431
|
+
}
|
|
432
|
+
/** 渲染 list_experts 的用户可见文本。 */
|
|
433
|
+
function renderExpertList(locale, args, value) {
|
|
434
|
+
if (value.divisions.length === 0) {
|
|
435
|
+
const division = args.division === void 0 ? "" : String(args.division).trim();
|
|
436
|
+
return division === "" ? formatHost(locale, "list.empty") : formatHost(locale, "list.emptyDivision", { division });
|
|
437
|
+
}
|
|
438
|
+
const lines = [];
|
|
439
|
+
for (const group of value.divisions) {
|
|
440
|
+
lines.push(formatHost(locale, "list.group", {
|
|
441
|
+
division: localizedDivision(group.division, locale),
|
|
442
|
+
count: group.count
|
|
443
|
+
}));
|
|
444
|
+
for (const expert of group.experts ?? []) {
|
|
445
|
+
const mark = expert.emoji !== "" ? expert.emoji + " " : "";
|
|
446
|
+
lines.push("- " + mark + expert.name + " — `" + expert.slug + "` — " + expert.description);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
lines.unshift(formatHost(locale, "list.heading", {
|
|
450
|
+
total: value.total,
|
|
451
|
+
count: value.divisions.length
|
|
452
|
+
}));
|
|
453
|
+
return lines.join("\n");
|
|
454
|
+
}
|
|
455
|
+
/** 渲染批量召唤结果:成功项输出答案,失败项输出本地化失败句。 */
|
|
456
|
+
function renderSummonResults(locale, results) {
|
|
457
|
+
return results.map((item) => {
|
|
458
|
+
const body = item.ok ? item.answer : formatHost(locale, "list.expertFailed", { error: item.error ?? "" });
|
|
459
|
+
return "## " + item.expert + "\n" + body;
|
|
460
|
+
}).join("\n\n");
|
|
461
|
+
}
|
|
462
|
+
//#endregion
|
|
463
|
+
export { readHostLocale as a, ZH_DIVISION as c, matchDivision as i, ZH_NAME as l, localizedExpertDescription as n, renderExpertList as o, localizedExpertName as r, renderSummonResults as s, formatHost as t };
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import z from "@deepseek-ai/schemastery";
|
|
2
|
+
import "@deepseek-ai/dsh-settings";
|
|
3
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
4
|
+
//#region src/names.d.ts
|
|
5
|
+
/** 智能体 slug(文件名去 .md)→ 中文名(现实岗位)。缺省时回退英文 frontmatter name。 */
|
|
6
|
+
declare const ZH_NAME: Readonly<Record<string, string>>;
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/i18n.d.ts
|
|
9
|
+
/** 与 DSH locale 插件一致的语言标识。 */
|
|
10
|
+
type LocaleId = 'zh' | 'en';
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/index.d.ts
|
|
13
|
+
declare const name = "agency-agents";
|
|
14
|
+
declare const inject: string[];
|
|
15
|
+
/** 一次批量召唤的专家数量上限,避免无界并行拖垮宿主。 */
|
|
16
|
+
declare const SUMMON_EXPERTS_MAX = 8;
|
|
17
|
+
/** 批量召唤的并发上限。 */
|
|
18
|
+
declare const SUMMON_EXPERTS_CONCURRENCY = 4;
|
|
19
|
+
/** 单条任务的 Unicode 码点上限。 */
|
|
20
|
+
declare const SUMMON_TASK_MAX_CHARS = 8000;
|
|
21
|
+
/** 已校验的批量召唤条目。 */
|
|
22
|
+
interface SummonExpertSpec {
|
|
23
|
+
readonly expert: unknown;
|
|
24
|
+
readonly task: string;
|
|
25
|
+
}
|
|
26
|
+
/** 批量召唤中单个专家的结果。 */
|
|
27
|
+
interface SummonExpertItemResult {
|
|
28
|
+
readonly expert: string;
|
|
29
|
+
readonly ok: boolean;
|
|
30
|
+
readonly answer: string;
|
|
31
|
+
readonly error?: string;
|
|
32
|
+
}
|
|
33
|
+
/** 校验批量召唤入参:非空、数量上限、专家名非空、任务非空且不超过码点上限。 */
|
|
34
|
+
declare function validateSummonSpecs(specs: unknown, locale: LocaleId): SummonExpertSpec[];
|
|
35
|
+
/** 受限并发地映射异步任务,结果顺序与输入一致。 */
|
|
36
|
+
declare function mapPool<T, R>(items: readonly T[], concurrency: number, mapper: (item: T, index: number) => Promise<R>): Promise<R[]>;
|
|
37
|
+
/** 把单次专家运行结果收成批量条目;失败时保留原始查询作为专家名。 */
|
|
38
|
+
declare function toSummonItemResult(query: unknown, result: {
|
|
39
|
+
expert: string;
|
|
40
|
+
answer: string;
|
|
41
|
+
} | Error): SummonExpertItemResult;
|
|
42
|
+
/** One resolved expert ready to be summoned. */
|
|
43
|
+
interface Expert {
|
|
44
|
+
readonly slug: string;
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly nameEn: string;
|
|
47
|
+
readonly description: string;
|
|
48
|
+
readonly descriptionEn: string;
|
|
49
|
+
readonly emoji: string;
|
|
50
|
+
readonly division: string;
|
|
51
|
+
readonly divisionZh: string;
|
|
52
|
+
readonly persona: string;
|
|
53
|
+
}
|
|
54
|
+
/** Plugin config: the persona root, the subagent provider, and the divisions to scan. */
|
|
55
|
+
interface Config {
|
|
56
|
+
/** Directory holding the `division/*.md` persona files. */
|
|
57
|
+
root: string;
|
|
58
|
+
/** `ctx.subagents` provider name (default `spawn`; `fork` also supports `persona`). */
|
|
59
|
+
provider: string;
|
|
60
|
+
/** Division directory names to scan under `root`. */
|
|
61
|
+
divisions: string[];
|
|
62
|
+
/** 可选的正整数绝对子代理深度上限;未设置时沿用 provider 的默认行为。 */
|
|
63
|
+
maxDepth?: number;
|
|
64
|
+
}
|
|
65
|
+
declare const Config: z<Config>;
|
|
66
|
+
/** 解析智能体根目录:显式配置优先,其次读取环境变量,最后使用包内资产。 */
|
|
67
|
+
declare function resolveCatalogRoot(root: string): string;
|
|
68
|
+
interface Frontmatter {
|
|
69
|
+
name?: string;
|
|
70
|
+
description?: string;
|
|
71
|
+
descriptionEn?: string;
|
|
72
|
+
emoji?: string;
|
|
73
|
+
body: string;
|
|
74
|
+
}
|
|
75
|
+
/** Neutralize strict `{{...}}` template interpolation inside expert prose. */
|
|
76
|
+
declare function sanitize(text: string): string;
|
|
77
|
+
/** 去除 UTF-8 BOM,避免 `^---` 因文件头部的零宽字符失配。 */
|
|
78
|
+
declare function stripBom(text: string): string;
|
|
79
|
+
/** 剥离字段值首尾的成对引号,保留引号内部的 #、冒号等字符。 */
|
|
80
|
+
declare function unquote(value: string): string;
|
|
81
|
+
/** 将超长文本截断到指定长度并追加省略号。 */
|
|
82
|
+
declare function truncate(text: string, limit: number): string;
|
|
83
|
+
/** Parse the `key: value` frontmatter block of one agency agent file. */
|
|
84
|
+
declare function parseFrontmatter(raw: string): Frontmatter | undefined;
|
|
85
|
+
/** Load every `<division>/**\/*.md` persona file (plus extra sources) into a slug-keyed map. Throws when root is invalid or empty. */
|
|
86
|
+
declare function loadCatalog(root: string, divisions: readonly string[]): Promise<Map<string, Expert>>;
|
|
87
|
+
/** 根据 slug 或名称解析智能体;任意多命中都必须要求调用者提供更精确的 slug。 */
|
|
88
|
+
declare function resolveExpert<T extends {
|
|
89
|
+
readonly slug: string;
|
|
90
|
+
readonly name: string;
|
|
91
|
+
readonly nameEn?: string;
|
|
92
|
+
}>(experts: readonly T[], query: unknown, locale?: LocaleId): T;
|
|
93
|
+
declare function apply(ctx: Context, config: Config): void;
|
|
94
|
+
//#endregion
|
|
95
|
+
export { Config, SUMMON_EXPERTS_CONCURRENCY, SUMMON_EXPERTS_MAX, SUMMON_TASK_MAX_CHARS, SummonExpertItemResult, SummonExpertSpec, ZH_NAME, apply, inject, loadCatalog, mapPool, name, parseFrontmatter, resolveCatalogRoot, resolveExpert, sanitize, stripBom, toSummonItemResult, truncate, unquote, validateSummonSpecs };
|