@tt-a1i/hive 1.3.4 → 1.4.2
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 +47 -0
- package/NOTICE +15 -0
- package/README.en.md +38 -1
- package/README.md +31 -1
- package/TRADEMARK.md +41 -0
- package/dist/src/cli/hive.js +34 -8
- package/dist/src/server/app.d.ts +2 -1
- package/dist/src/server/app.js +68 -1
- package/dist/src/server/hive-team-guidance.js +1 -0
- package/dist/src/server/marketplace-store.d.ts +38 -0
- package/dist/src/server/marketplace-store.js +85 -0
- package/dist/src/server/routes-marketplace.d.ts +2 -0
- package/dist/src/server/routes-marketplace.js +54 -0
- package/dist/src/server/routes.js +2 -0
- package/dist/src/server/workspace-store-mutations.js +5 -3
- package/dist/vendor/marketplace/en/LICENSE +21 -0
- package/dist/vendor/marketplace/en/SOURCES.md +12 -0
- package/dist/vendor/marketplace/en/academic/academic-anthropologist.md +125 -0
- package/dist/vendor/marketplace/en/academic/academic-geographer.md +127 -0
- package/dist/vendor/marketplace/en/academic/academic-historian.md +123 -0
- package/dist/vendor/marketplace/en/academic/academic-narratologist.md +118 -0
- package/dist/vendor/marketplace/en/academic/academic-psychologist.md +118 -0
- package/dist/vendor/marketplace/en/design/design-brand-guardian.md +322 -0
- package/dist/vendor/marketplace/en/design/design-image-prompt-engineer.md +236 -0
- package/dist/vendor/marketplace/en/design/design-inclusive-visuals-specialist.md +71 -0
- package/dist/vendor/marketplace/en/design/design-ui-designer.md +383 -0
- package/dist/vendor/marketplace/en/design/design-ux-architect.md +469 -0
- package/dist/vendor/marketplace/en/design/design-ux-researcher.md +329 -0
- package/dist/vendor/marketplace/en/design/design-visual-storyteller.md +149 -0
- package/dist/vendor/marketplace/en/design/design-whimsy-injector.md +438 -0
- package/dist/vendor/marketplace/en/engineering/engineering-ai-data-remediation-engineer.md +211 -0
- package/dist/vendor/marketplace/en/engineering/engineering-ai-engineer.md +146 -0
- package/dist/vendor/marketplace/en/engineering/engineering-autonomous-optimization-architect.md +107 -0
- package/dist/vendor/marketplace/en/engineering/engineering-backend-architect.md +235 -0
- package/dist/vendor/marketplace/en/engineering/engineering-cms-developer.md +536 -0
- package/dist/vendor/marketplace/en/engineering/engineering-code-reviewer.md +76 -0
- package/dist/vendor/marketplace/en/engineering/engineering-codebase-onboarding-engineer.md +173 -0
- package/dist/vendor/marketplace/en/engineering/engineering-data-engineer.md +306 -0
- package/dist/vendor/marketplace/en/engineering/engineering-database-optimizer.md +176 -0
- package/dist/vendor/marketplace/en/engineering/engineering-devops-automator.md +376 -0
- package/dist/vendor/marketplace/en/engineering/engineering-email-intelligence-engineer.md +353 -0
- package/dist/vendor/marketplace/en/engineering/engineering-embedded-firmware-engineer.md +173 -0
- package/dist/vendor/marketplace/en/engineering/engineering-feishu-integration-developer.md +598 -0
- package/dist/vendor/marketplace/en/engineering/engineering-filament-optimization-specialist.md +283 -0
- package/dist/vendor/marketplace/en/engineering/engineering-frontend-developer.md +225 -0
- package/dist/vendor/marketplace/en/engineering/engineering-git-workflow-master.md +84 -0
- package/dist/vendor/marketplace/en/engineering/engineering-incident-response-commander.md +444 -0
- package/dist/vendor/marketplace/en/engineering/engineering-minimal-change-engineer.md +207 -0
- package/dist/vendor/marketplace/en/engineering/engineering-mobile-app-builder.md +493 -0
- package/dist/vendor/marketplace/en/engineering/engineering-rapid-prototyper.md +462 -0
- package/dist/vendor/marketplace/en/engineering/engineering-security-engineer.md +304 -0
- package/dist/vendor/marketplace/en/engineering/engineering-senior-developer.md +176 -0
- package/dist/vendor/marketplace/en/engineering/engineering-software-architect.md +81 -0
- package/dist/vendor/marketplace/en/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
- package/dist/vendor/marketplace/en/engineering/engineering-sre.md +90 -0
- package/dist/vendor/marketplace/en/engineering/engineering-technical-writer.md +393 -0
- package/dist/vendor/marketplace/en/engineering/engineering-threat-detection-engineer.md +534 -0
- package/dist/vendor/marketplace/en/engineering/engineering-voice-ai-integration-engineer.md +561 -0
- package/dist/vendor/marketplace/en/engineering/engineering-wechat-mini-program-developer.md +350 -0
- package/dist/vendor/marketplace/en/finance/finance-bookkeeper-controller.md +260 -0
- package/dist/vendor/marketplace/en/finance/finance-financial-analyst.md +234 -0
- package/dist/vendor/marketplace/en/finance/finance-fpa-analyst.md +263 -0
- package/dist/vendor/marketplace/en/finance/finance-investment-researcher.md +272 -0
- package/dist/vendor/marketplace/en/finance/finance-tax-strategist.md +239 -0
- package/dist/vendor/marketplace/en/game-development/blender/blender-addon-engineer.md +234 -0
- package/dist/vendor/marketplace/en/game-development/game-audio-engineer.md +264 -0
- package/dist/vendor/marketplace/en/game-development/game-designer.md +167 -0
- package/dist/vendor/marketplace/en/game-development/godot/godot-gameplay-scripter.md +334 -0
- package/dist/vendor/marketplace/en/game-development/godot/godot-multiplayer-engineer.md +297 -0
- package/dist/vendor/marketplace/en/game-development/godot/godot-shader-developer.md +266 -0
- package/dist/vendor/marketplace/en/game-development/level-designer.md +208 -0
- package/dist/vendor/marketplace/en/game-development/narrative-designer.md +243 -0
- package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-avatar-creator.md +297 -0
- package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-experience-designer.md +305 -0
- package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
- package/dist/vendor/marketplace/en/game-development/technical-artist.md +229 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-architect.md +271 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-editor-tool-developer.md +310 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-multiplayer-engineer.md +321 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-shader-graph-artist.md +269 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-multiplayer-architect.md +313 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-systems-engineer.md +310 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-technical-artist.md +256 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-world-builder.md +273 -0
- package/dist/vendor/marketplace/en/integrations/mcp-memory/backend-architect-with-memory.md +247 -0
- package/dist/vendor/marketplace/en/manifest.json +1869 -0
- package/dist/vendor/marketplace/en/marketing/marketing-agentic-search-optimizer.md +311 -0
- package/dist/vendor/marketplace/en/marketing/marketing-ai-citation-strategist.md +170 -0
- package/dist/vendor/marketplace/en/marketing/marketing-app-store-optimizer.md +321 -0
- package/dist/vendor/marketplace/en/marketing/marketing-baidu-seo-specialist.md +226 -0
- package/dist/vendor/marketplace/en/marketing/marketing-bilibili-content-strategist.md +199 -0
- package/dist/vendor/marketplace/en/marketing/marketing-book-co-author.md +110 -0
- package/dist/vendor/marketplace/en/marketing/marketing-carousel-growth-engine.md +199 -0
- package/dist/vendor/marketplace/en/marketing/marketing-china-ecommerce-operator.md +283 -0
- package/dist/vendor/marketplace/en/marketing/marketing-china-market-localization-strategist.md +283 -0
- package/dist/vendor/marketplace/en/marketing/marketing-content-creator.md +54 -0
- package/dist/vendor/marketplace/en/marketing/marketing-cross-border-ecommerce.md +259 -0
- package/dist/vendor/marketplace/en/marketing/marketing-douyin-strategist.md +149 -0
- package/dist/vendor/marketplace/en/marketing/marketing-growth-hacker.md +54 -0
- package/dist/vendor/marketplace/en/marketing/marketing-instagram-curator.md +113 -0
- package/dist/vendor/marketplace/en/marketing/marketing-kuaishou-strategist.md +223 -0
- package/dist/vendor/marketplace/en/marketing/marketing-linkedin-content-creator.md +214 -0
- package/dist/vendor/marketplace/en/marketing/marketing-livestream-commerce-coach.md +305 -0
- package/dist/vendor/marketplace/en/marketing/marketing-podcast-strategist.md +277 -0
- package/dist/vendor/marketplace/en/marketing/marketing-private-domain-operator.md +308 -0
- package/dist/vendor/marketplace/en/marketing/marketing-reddit-community-builder.md +123 -0
- package/dist/vendor/marketplace/en/marketing/marketing-seo-specialist.md +321 -0
- package/dist/vendor/marketplace/en/marketing/marketing-short-video-editing-coach.md +412 -0
- package/dist/vendor/marketplace/en/marketing/marketing-social-media-strategist.md +125 -0
- package/dist/vendor/marketplace/en/marketing/marketing-tiktok-strategist.md +125 -0
- package/dist/vendor/marketplace/en/marketing/marketing-twitter-engager.md +126 -0
- package/dist/vendor/marketplace/en/marketing/marketing-video-optimization-specialist.md +119 -0
- package/dist/vendor/marketplace/en/marketing/marketing-wechat-official-account.md +145 -0
- package/dist/vendor/marketplace/en/marketing/marketing-weibo-strategist.md +240 -0
- package/dist/vendor/marketplace/en/marketing/marketing-xiaohongshu-specialist.md +138 -0
- package/dist/vendor/marketplace/en/marketing/marketing-zhihu-strategist.md +162 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-auditor.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-creative-strategist.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-paid-social-strategist.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-ppc-strategist.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-programmatic-buyer.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-search-query-analyst.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-tracking-specialist.md +71 -0
- package/dist/vendor/marketplace/en/product/product-behavioral-nudge-engine.md +80 -0
- package/dist/vendor/marketplace/en/product/product-feedback-synthesizer.md +119 -0
- package/dist/vendor/marketplace/en/product/product-manager.md +469 -0
- package/dist/vendor/marketplace/en/product/product-sprint-prioritizer.md +154 -0
- package/dist/vendor/marketplace/en/product/product-trend-researcher.md +159 -0
- package/dist/vendor/marketplace/en/project-management/project-management-experiment-tracker.md +198 -0
- package/dist/vendor/marketplace/en/project-management/project-management-jira-workflow-steward.md +230 -0
- package/dist/vendor/marketplace/en/project-management/project-management-project-shepherd.md +194 -0
- package/dist/vendor/marketplace/en/project-management/project-management-studio-operations.md +200 -0
- package/dist/vendor/marketplace/en/project-management/project-management-studio-producer.md +203 -0
- package/dist/vendor/marketplace/en/project-management/project-manager-senior.md +135 -0
- package/dist/vendor/marketplace/en/sales/sales-account-strategist.md +227 -0
- package/dist/vendor/marketplace/en/sales/sales-coach.md +271 -0
- package/dist/vendor/marketplace/en/sales/sales-deal-strategist.md +180 -0
- package/dist/vendor/marketplace/en/sales/sales-discovery-coach.md +225 -0
- package/dist/vendor/marketplace/en/sales/sales-engineer.md +182 -0
- package/dist/vendor/marketplace/en/sales/sales-outbound-strategist.md +201 -0
- package/dist/vendor/marketplace/en/sales/sales-pipeline-analyst.md +267 -0
- package/dist/vendor/marketplace/en/sales/sales-proposal-strategist.md +217 -0
- package/dist/vendor/marketplace/en/spatial-computing/macos-spatial-metal-engineer.md +337 -0
- package/dist/vendor/marketplace/en/spatial-computing/terminal-integration-specialist.md +70 -0
- package/dist/vendor/marketplace/en/spatial-computing/visionos-spatial-engineer.md +54 -0
- package/dist/vendor/marketplace/en/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
- package/dist/vendor/marketplace/en/spatial-computing/xr-immersive-developer.md +32 -0
- package/dist/vendor/marketplace/en/spatial-computing/xr-interface-architect.md +32 -0
- package/dist/vendor/marketplace/en/specialized/accounts-payable-agent.md +185 -0
- package/dist/vendor/marketplace/en/specialized/agentic-identity-trust.md +387 -0
- package/dist/vendor/marketplace/en/specialized/agents-orchestrator.md +367 -0
- package/dist/vendor/marketplace/en/specialized/automation-governance-architect.md +216 -0
- package/dist/vendor/marketplace/en/specialized/blockchain-security-auditor.md +463 -0
- package/dist/vendor/marketplace/en/specialized/compliance-auditor.md +158 -0
- package/dist/vendor/marketplace/en/specialized/corporate-training-designer.md +192 -0
- package/dist/vendor/marketplace/en/specialized/customer-service.md +398 -0
- package/dist/vendor/marketplace/en/specialized/data-consolidation-agent.md +60 -0
- package/dist/vendor/marketplace/en/specialized/government-digital-presales-consultant.md +363 -0
- package/dist/vendor/marketplace/en/specialized/healthcare-customer-service.md +389 -0
- package/dist/vendor/marketplace/en/specialized/healthcare-marketing-compliance.md +395 -0
- package/dist/vendor/marketplace/en/specialized/hospitality-guest-services.md +603 -0
- package/dist/vendor/marketplace/en/specialized/hr-onboarding.md +451 -0
- package/dist/vendor/marketplace/en/specialized/identity-graph-operator.md +260 -0
- package/dist/vendor/marketplace/en/specialized/language-translator.md +264 -0
- package/dist/vendor/marketplace/en/specialized/legal-billing-time-tracking.md +569 -0
- package/dist/vendor/marketplace/en/specialized/legal-client-intake.md +492 -0
- package/dist/vendor/marketplace/en/specialized/legal-document-review.md +454 -0
- package/dist/vendor/marketplace/en/specialized/loan-officer-assistant.md +555 -0
- package/dist/vendor/marketplace/en/specialized/lsp-index-engineer.md +314 -0
- package/dist/vendor/marketplace/en/specialized/real-estate-buyer-seller.md +596 -0
- package/dist/vendor/marketplace/en/specialized/recruitment-specialist.md +509 -0
- package/dist/vendor/marketplace/en/specialized/report-distribution-agent.md +65 -0
- package/dist/vendor/marketplace/en/specialized/retail-customer-returns.md +566 -0
- package/dist/vendor/marketplace/en/specialized/sales-data-extraction-agent.md +67 -0
- package/dist/vendor/marketplace/en/specialized/sales-outreach.md +425 -0
- package/dist/vendor/marketplace/en/specialized/specialized-chief-of-staff.md +279 -0
- package/dist/vendor/marketplace/en/specialized/specialized-civil-engineer.md +356 -0
- package/dist/vendor/marketplace/en/specialized/specialized-cultural-intelligence-strategist.md +88 -0
- package/dist/vendor/marketplace/en/specialized/specialized-developer-advocate.md +317 -0
- package/dist/vendor/marketplace/en/specialized/specialized-document-generator.md +55 -0
- package/dist/vendor/marketplace/en/specialized/specialized-french-consulting-market.md +192 -0
- package/dist/vendor/marketplace/en/specialized/specialized-korean-business-navigator.md +216 -0
- package/dist/vendor/marketplace/en/specialized/specialized-mcp-builder.md +248 -0
- package/dist/vendor/marketplace/en/specialized/specialized-model-qa.md +488 -0
- package/dist/vendor/marketplace/en/specialized/specialized-salesforce-architect.md +180 -0
- package/dist/vendor/marketplace/en/specialized/specialized-workflow-architect.md +597 -0
- package/dist/vendor/marketplace/en/specialized/study-abroad-advisor.md +282 -0
- package/dist/vendor/marketplace/en/specialized/supply-chain-strategist.md +582 -0
- package/dist/vendor/marketplace/en/support/support-analytics-reporter.md +365 -0
- package/dist/vendor/marketplace/en/support/support-executive-summary-generator.md +212 -0
- package/dist/vendor/marketplace/en/support/support-finance-tracker.md +442 -0
- package/dist/vendor/marketplace/en/support/support-infrastructure-maintainer.md +618 -0
- package/dist/vendor/marketplace/en/support/support-legal-compliance-checker.md +588 -0
- package/dist/vendor/marketplace/en/support/support-support-responder.md +585 -0
- package/dist/vendor/marketplace/en/testing/testing-accessibility-auditor.md +316 -0
- package/dist/vendor/marketplace/en/testing/testing-api-tester.md +306 -0
- package/dist/vendor/marketplace/en/testing/testing-evidence-collector.md +210 -0
- package/dist/vendor/marketplace/en/testing/testing-performance-benchmarker.md +268 -0
- package/dist/vendor/marketplace/en/testing/testing-reality-checker.md +236 -0
- package/dist/vendor/marketplace/en/testing/testing-test-results-analyzer.md +305 -0
- package/dist/vendor/marketplace/en/testing/testing-tool-evaluator.md +394 -0
- package/dist/vendor/marketplace/en/testing/testing-workflow-optimizer.md +450 -0
- package/dist/vendor/marketplace/zh/LICENSE +22 -0
- package/dist/vendor/marketplace/zh/SOURCES.md +12 -0
- package/dist/vendor/marketplace/zh/academic/academic-anthropologist.md +124 -0
- package/dist/vendor/marketplace/zh/academic/academic-geographer.md +126 -0
- package/dist/vendor/marketplace/zh/academic/academic-historian.md +122 -0
- package/dist/vendor/marketplace/zh/academic/academic-narratologist.md +117 -0
- package/dist/vendor/marketplace/zh/academic/academic-psychologist.md +117 -0
- package/dist/vendor/marketplace/zh/academic/academic-study-planner.md +214 -0
- package/dist/vendor/marketplace/zh/design/design-brand-guardian.md +321 -0
- package/dist/vendor/marketplace/zh/design/design-image-prompt-engineer.md +255 -0
- package/dist/vendor/marketplace/zh/design/design-inclusive-visuals-specialist.md +177 -0
- package/dist/vendor/marketplace/zh/design/design-ui-designer.md +382 -0
- package/dist/vendor/marketplace/zh/design/design-ux-architect.md +482 -0
- package/dist/vendor/marketplace/zh/design/design-ux-researcher.md +328 -0
- package/dist/vendor/marketplace/zh/design/design-visual-storyteller.md +159 -0
- package/dist/vendor/marketplace/zh/design/design-whimsy-injector.md +453 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-ai-data-remediation-engineer.md +209 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-ai-engineer.md +161 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-autonomous-optimization-architect.md +115 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-backend-architect.md +234 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-cms-developer.md +534 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-code-reviewer.md +172 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-codebase-onboarding-engineer.md +172 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-data-engineer.md +324 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-database-optimizer.md +175 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-devops-automator.md +375 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-dingtalk-integration-developer.md +574 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-email-intelligence-engineer.md +349 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-embedded-firmware-engineer.md +168 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-embedded-linux-driver-engineer.md +255 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-feishu-integration-developer.md +597 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-filament-optimization-specialist.md +283 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-fpga-digital-design-engineer.md +227 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-frontend-developer.md +224 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-git-workflow-master.md +220 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-incident-response-commander.md +465 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-iot-solution-architect.md +220 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-mechanical-design-engineer.md +311 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-minimal-change-engineer.md +206 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-mobile-app-builder.md +434 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-pc-host-engineer.md +231 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-rapid-prototyper.md +461 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-security-engineer.md +303 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-senior-developer.md +177 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-software-architect.md +200 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-solidity-smart-contract-engineer.md +541 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-sre.md +233 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-technical-writer.md +409 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-threat-detection-engineer.md +553 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-voice-ai-integration-engineer.md +560 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-wechat-mini-program-developer.md +288 -0
- package/dist/vendor/marketplace/zh/finance/finance-bookkeeper-controller.md +271 -0
- package/dist/vendor/marketplace/zh/finance/finance-financial-analyst.md +244 -0
- package/dist/vendor/marketplace/zh/finance/finance-financial-forecaster.md +213 -0
- package/dist/vendor/marketplace/zh/finance/finance-fpa-analyst.md +272 -0
- package/dist/vendor/marketplace/zh/finance/finance-fraud-detector.md +241 -0
- package/dist/vendor/marketplace/zh/finance/finance-investment-researcher.md +283 -0
- package/dist/vendor/marketplace/zh/finance/finance-invoice-manager.md +242 -0
- package/dist/vendor/marketplace/zh/finance/finance-tax-strategist.md +250 -0
- package/dist/vendor/marketplace/zh/game-development/blender/blender-addon-engineer.md +233 -0
- package/dist/vendor/marketplace/zh/game-development/game-audio-engineer.md +265 -0
- package/dist/vendor/marketplace/zh/game-development/game-designer.md +168 -0
- package/dist/vendor/marketplace/zh/game-development/godot/godot-gameplay-scripter.md +335 -0
- package/dist/vendor/marketplace/zh/game-development/godot/godot-multiplayer-engineer.md +296 -0
- package/dist/vendor/marketplace/zh/game-development/godot/godot-shader-developer.md +267 -0
- package/dist/vendor/marketplace/zh/game-development/level-designer.md +209 -0
- package/dist/vendor/marketplace/zh/game-development/narrative-designer.md +244 -0
- package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-avatar-creator.md +298 -0
- package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-experience-designer.md +306 -0
- package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
- package/dist/vendor/marketplace/zh/game-development/technical-artist.md +230 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-architect.md +272 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-editor-tool-developer.md +300 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-multiplayer-engineer.md +238 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-shader-graph-artist.md +270 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-multiplayer-architect.md +314 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-systems-engineer.md +311 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-technical-artist.md +256 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-world-builder.md +274 -0
- package/dist/vendor/marketplace/zh/hr/hr-performance-reviewer.md +248 -0
- package/dist/vendor/marketplace/zh/hr/hr-recruiter.md +232 -0
- package/dist/vendor/marketplace/zh/legal/legal-contract-reviewer.md +240 -0
- package/dist/vendor/marketplace/zh/legal/legal-policy-writer.md +308 -0
- package/dist/vendor/marketplace/zh/manifest.json +2181 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-agentic-search-optimizer.md +312 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-ai-citation-strategist.md +169 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-app-store-optimizer.md +319 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-baidu-seo-specialist.md +220 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-bilibili-strategist.md +194 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-book-co-author.md +109 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-carousel-growth-engine.md +215 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-china-ecommerce-operator.md +277 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-china-market-localization-strategist.md +282 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-content-creator.md +145 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-cross-border-ecommerce.md +260 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-daily-news-briefing.md +303 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-douyin-strategist.md +150 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-ecommerce-operator.md +216 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-growth-hacker.md +121 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-instagram-curator.md +179 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-knowledge-commerce-strategist.md +384 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-kuaishou-strategist.md +182 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-linkedin-content-creator.md +232 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-livestream-commerce-coach.md +303 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-podcast-strategist.md +278 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-private-domain-operator.md +309 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-reddit-community-builder.md +127 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-seo-specialist.md +298 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-short-video-editing-coach.md +413 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-social-media-strategist.md +118 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-tiktok-strategist.md +124 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-twitter-engager.md +132 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-video-optimization-specialist.md +128 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-wechat-official-account.md +158 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-wechat-operator.md +156 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-weibo-strategist.md +241 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-weixin-channels-strategist.md +297 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-operator.md +139 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-specialist.md +151 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-zhihu-strategist.md +175 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-auditor.md +170 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-creative-strategist.md +173 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-paid-social-strategist.md +180 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-ppc-strategist.md +180 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-programmatic-buyer.md +177 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-search-query-analyst.md +182 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-tracking-specialist.md +199 -0
- package/dist/vendor/marketplace/zh/product/product-behavioral-nudge-engine.md +246 -0
- package/dist/vendor/marketplace/zh/product/product-feedback-synthesizer.md +175 -0
- package/dist/vendor/marketplace/zh/product/product-manager.md +474 -0
- package/dist/vendor/marketplace/zh/product/product-sprint-prioritizer.md +133 -0
- package/dist/vendor/marketplace/zh/product/product-trend-researcher.md +143 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-experiment-tracker.md +206 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-jira-workflow-steward.md +249 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-project-shepherd.md +202 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-studio-operations.md +208 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-studio-producer.md +211 -0
- package/dist/vendor/marketplace/zh/project-management/project-manager-senior.md +135 -0
- package/dist/vendor/marketplace/zh/sales/sales-account-strategist.md +243 -0
- package/dist/vendor/marketplace/zh/sales/sales-coach.md +291 -0
- package/dist/vendor/marketplace/zh/sales/sales-deal-strategist.md +204 -0
- package/dist/vendor/marketplace/zh/sales/sales-discovery-coach.md +230 -0
- package/dist/vendor/marketplace/zh/sales/sales-engineer.md +200 -0
- package/dist/vendor/marketplace/zh/sales/sales-outbound-strategist.md +208 -0
- package/dist/vendor/marketplace/zh/sales/sales-pipeline-analyst.md +284 -0
- package/dist/vendor/marketplace/zh/sales/sales-proposal-strategist.md +233 -0
- package/dist/vendor/marketplace/zh/spatial-computing/macos-spatial-metal-engineer.md +337 -0
- package/dist/vendor/marketplace/zh/spatial-computing/terminal-integration-specialist.md +236 -0
- package/dist/vendor/marketplace/zh/spatial-computing/visionos-spatial-engineer.md +282 -0
- package/dist/vendor/marketplace/zh/spatial-computing/xr-cockpit-interaction-specialist.md +220 -0
- package/dist/vendor/marketplace/zh/spatial-computing/xr-immersive-developer.md +229 -0
- package/dist/vendor/marketplace/zh/spatial-computing/xr-interface-architect.md +253 -0
- package/dist/vendor/marketplace/zh/specialized/accounts-payable-agent.md +212 -0
- package/dist/vendor/marketplace/zh/specialized/agentic-identity-trust.md +388 -0
- package/dist/vendor/marketplace/zh/specialized/agents-orchestrator.md +366 -0
- package/dist/vendor/marketplace/zh/specialized/automation-governance-architect.md +215 -0
- package/dist/vendor/marketplace/zh/specialized/blockchain-security-auditor.md +484 -0
- package/dist/vendor/marketplace/zh/specialized/compliance-auditor.md +172 -0
- package/dist/vendor/marketplace/zh/specialized/corporate-training-designer.md +191 -0
- package/dist/vendor/marketplace/zh/specialized/data-consolidation-agent.md +327 -0
- package/dist/vendor/marketplace/zh/specialized/gaokao-college-advisor.md +333 -0
- package/dist/vendor/marketplace/zh/specialized/government-digital-presales-consultant.md +362 -0
- package/dist/vendor/marketplace/zh/specialized/healthcare-customer-service.md +388 -0
- package/dist/vendor/marketplace/zh/specialized/healthcare-marketing-compliance.md +394 -0
- package/dist/vendor/marketplace/zh/specialized/hospitality-guest-services.md +597 -0
- package/dist/vendor/marketplace/zh/specialized/hr-onboarding.md +450 -0
- package/dist/vendor/marketplace/zh/specialized/identity-graph-operator.md +270 -0
- package/dist/vendor/marketplace/zh/specialized/language-translator.md +275 -0
- package/dist/vendor/marketplace/zh/specialized/legal-billing-time-tracking.md +566 -0
- package/dist/vendor/marketplace/zh/specialized/legal-client-intake.md +487 -0
- package/dist/vendor/marketplace/zh/specialized/legal-document-review.md +452 -0
- package/dist/vendor/marketplace/zh/specialized/livestock-archive-auditor.md +135 -0
- package/dist/vendor/marketplace/zh/specialized/loan-officer-assistant.md +549 -0
- package/dist/vendor/marketplace/zh/specialized/lsp-index-engineer.md +334 -0
- package/dist/vendor/marketplace/zh/specialized/prompt-engineer.md +176 -0
- package/dist/vendor/marketplace/zh/specialized/real-estate-buyer-seller.md +594 -0
- package/dist/vendor/marketplace/zh/specialized/recruitment-specialist.md +508 -0
- package/dist/vendor/marketplace/zh/specialized/report-distribution-agent.md +354 -0
- package/dist/vendor/marketplace/zh/specialized/retail-customer-returns.md +564 -0
- package/dist/vendor/marketplace/zh/specialized/sales-data-extraction-agent.md +159 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-ai-policy-writer.md +217 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-chief-of-staff.md +278 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-civil-engineer.md +355 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-cultural-intelligence-strategist.md +168 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-developer-advocate.md +334 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-document-generator.md +346 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-french-consulting-market.md +191 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-korean-business-navigator.md +215 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-mcp-builder.md +351 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-meeting-assistant.md +236 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-model-qa.md +507 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-pricing-optimizer.md +254 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-risk-assessor.md +240 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-salesforce-architect.md +179 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-workflow-architect.md +596 -0
- package/dist/vendor/marketplace/zh/specialized/study-abroad-advisor.md +281 -0
- package/dist/vendor/marketplace/zh/specialized/technical-translator-agent.md +167 -0
- package/dist/vendor/marketplace/zh/specialized/zk-steward.md +228 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-inventory-forecaster.md +212 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-route-optimizer.md +224 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-strategist.md +581 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-vendor-evaluator.md +232 -0
- package/dist/vendor/marketplace/zh/support/support-analytics-reporter.md +364 -0
- package/dist/vendor/marketplace/zh/support/support-executive-summary-generator.md +217 -0
- package/dist/vendor/marketplace/zh/support/support-finance-tracker.md +447 -0
- package/dist/vendor/marketplace/zh/support/support-infrastructure-maintainer.md +623 -0
- package/dist/vendor/marketplace/zh/support/support-legal-compliance-checker.md +587 -0
- package/dist/vendor/marketplace/zh/support/support-recruitment-specialist.md +508 -0
- package/dist/vendor/marketplace/zh/support/support-support-responder.md +584 -0
- package/dist/vendor/marketplace/zh/testing/testing-accessibility-auditor.md +329 -0
- package/dist/vendor/marketplace/zh/testing/testing-api-tester.md +305 -0
- package/dist/vendor/marketplace/zh/testing/testing-embedded-qa-engineer.md +258 -0
- package/dist/vendor/marketplace/zh/testing/testing-evidence-collector.md +153 -0
- package/dist/vendor/marketplace/zh/testing/testing-performance-benchmarker.md +196 -0
- package/dist/vendor/marketplace/zh/testing/testing-reality-checker.md +235 -0
- package/dist/vendor/marketplace/zh/testing/testing-test-results-analyzer.md +313 -0
- package/dist/vendor/marketplace/zh/testing/testing-tool-evaluator.md +402 -0
- package/dist/vendor/marketplace/zh/testing/testing-workflow-optimizer.md +458 -0
- package/package.json +8 -1
- package/web/dist/assets/AddWorkerDialog-D-XO6MoI.js +2 -0
- package/web/dist/assets/{AddWorkspaceDialog-Du0lndJ0.js → AddWorkspaceDialog-D4InpBpd.js} +1 -1
- package/web/dist/assets/{FirstRunWizard-B8k7S5De.js → FirstRunWizard-xHiver2Q.js} +1 -1
- package/web/dist/assets/MarketplaceDrawer-CqE8_4ZP.js +76 -0
- package/web/dist/assets/WorkerModal-DgOuzZMW.js +1 -0
- package/web/dist/assets/WorkspaceTaskDrawer-D0Y-Gyvw.js +1 -0
- package/web/dist/assets/WorkspaceTerminalPanels-BqEcvvSH.js +1 -0
- package/web/dist/assets/WorkspaceTerminalPanels-DDGTF8rc.css +1 -0
- package/web/dist/assets/{chevron-right-BvbSCniy.js → chevron-right-Bmg7DcUj.js} +1 -1
- package/web/dist/assets/index-BEsTmfrO.css +1 -0
- package/web/dist/assets/index-CWW5vUjQ.js +76 -0
- package/web/dist/bilibili.ico +0 -0
- package/web/dist/index.html +2 -2
- package/web/dist/sw.js +1 -1
- package/web/dist/assets/AddWorkerDialog-D6-K1wJm.js +0 -1
- package/web/dist/assets/WorkerModal-B3XhIvAX.js +0 -1
- package/web/dist/assets/WorkspaceTaskDrawer-CjEoLJvS.js +0 -1
- package/web/dist/assets/index-DB5fHAMI.js +0 -81
- package/web/dist/assets/index-Sbdu6Se0.css +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
All notable user-facing changes will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 1.4.2 - 2026-05-27
|
|
6
|
+
|
|
7
|
+
Demo video, worker naming, and small UI polish.
|
|
8
|
+
|
|
9
|
+
- Adds a Bilibili demo video entry to the sidebar footer and replaces the demo
|
|
10
|
+
workspace mockup with the actual demo video embed.
|
|
11
|
+
- Links the Hive logo and version in the topbar to `hivehq.dev`.
|
|
12
|
+
- Uses role glyph avatars for workers instead of two-letter placeholders.
|
|
13
|
+
- Auto-fills a generated worker name when the Add Member dialog opens and
|
|
14
|
+
prevents the name from regenerating while the dialog stays open.
|
|
15
|
+
- Trims random worker-name pools to well-known figures for clearer,
|
|
16
|
+
localized names.
|
|
17
|
+
- Improves the empty Tasks panel with a stronger add-task call to action.
|
|
18
|
+
- Serves the sidebar Bilibili icon from a packaged static asset instead of an
|
|
19
|
+
inline data URL.
|
|
20
|
+
|
|
21
|
+
## 1.4.1 - 2026-05-26
|
|
22
|
+
|
|
23
|
+
Private release-source housekeeping.
|
|
24
|
+
|
|
25
|
+
- Keeps the packaged product release train on the private release-source
|
|
26
|
+
repository.
|
|
27
|
+
- Adds attribution and trademark notices to the packaged npm tarball.
|
|
28
|
+
- Documents the private/public repository split so future release work does
|
|
29
|
+
not accidentally expose internal implementation notes or unreleased product
|
|
30
|
+
work.
|
|
31
|
+
- Stabilizes the manual startup-command smoke test under full-suite PTY load.
|
|
32
|
+
|
|
33
|
+
## 1.4.0 - 2026-05-22
|
|
34
|
+
|
|
35
|
+
Template marketplace and agent picker polish.
|
|
36
|
+
|
|
37
|
+
- Adds a bilingual template marketplace to the Add Member flow, with English
|
|
38
|
+
and Chinese agent libraries, category filters, search, and one-click import
|
|
39
|
+
into custom role instructions.
|
|
40
|
+
- Ships the marketplace templates inside the npm package under
|
|
41
|
+
`dist/vendor/marketplace`, so the library works from packaged installs
|
|
42
|
+
without fetching remote content.
|
|
43
|
+
- Polishes the marketplace drawer/card design for denser browsing, clearer
|
|
44
|
+
imported states, stronger search ergonomics, and better Chinese/English
|
|
45
|
+
category labels.
|
|
46
|
+
- Keeps the Tasks side panel aligned with the Team Members panel width for a
|
|
47
|
+
more predictable two-panel layout.
|
|
48
|
+
- Shows the selected CLI's brand mark in the Agent CLI picker, while keeping a
|
|
49
|
+
terminal glyph for generic custom commands.
|
|
50
|
+
- Removes stale Biome suppression comments from marketplace-related UI code.
|
|
51
|
+
|
|
5
52
|
## 1.3.4 - 2026-05-21
|
|
6
53
|
|
|
7
54
|
Terminal performance and Tasks panel polish.
|
package/NOTICE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Hive
|
|
2
|
+
Copyright (c) 2026 Shaokun Tu (tt-a1i) and contributors.
|
|
3
|
+
|
|
4
|
+
This product includes software licensed under the Business Source License 1.1.
|
|
5
|
+
See LICENSE.BSL for the source license and LICENSE for historical Apache-2.0
|
|
6
|
+
terms that apply only to versions covered by that file.
|
|
7
|
+
|
|
8
|
+
Redistributions, forks, and modified versions must preserve this notice and
|
|
9
|
+
the applicable license files. The Hive name, logo, and visual identity are
|
|
10
|
+
covered by the trademark guidelines in TRADEMARK.md and are not granted by the
|
|
11
|
+
source license.
|
|
12
|
+
|
|
13
|
+
Hive includes optional marketplace prompt snapshots from third-party projects.
|
|
14
|
+
Their upstream license files are preserved under the packaged vendor
|
|
15
|
+
marketplace directories when those snapshots are included in a release.
|
package/README.en.md
CHANGED
|
@@ -318,6 +318,32 @@ polishing the multi-agent collaboration workflow, Windows support, and clearer
|
|
|
318
318
|
orchestration observability. Try it out and open issues — feedback shapes what
|
|
319
319
|
gets prioritized next.
|
|
320
320
|
|
|
321
|
+
## On the roadmap: cross-agent long-term memory
|
|
322
|
+
|
|
323
|
+
<p align="center">
|
|
324
|
+
<a href="https://github.com/EverMind-AI/EverOS">
|
|
325
|
+
<img src="https://avatars.githubusercontent.com/EverMind-AI" width="72" alt="EverMind / EverOS" />
|
|
326
|
+
</a>
|
|
327
|
+
</p>
|
|
328
|
+
|
|
329
|
+
Single-agent memory already exists, but the styles diverge:
|
|
330
|
+
|
|
331
|
+
- **Claude Code's [Auto Dream](https://claudefa.st/blog/guide/mechanics/auto-dream)** is **batch / offline** — invoked via `/dream` (or on a 24h timer), Claude consolidates JSONL session logs in the cloud, merges duplicates, extracts patterns, and proposes a new memory file for you to review and adopt. REM-sleep style, with a clean wake/sleep separation.
|
|
332
|
+
- **Hermes Agent** runs the opposite playbook — **embedded and in-stride**. Every N turns it forks a background sub-agent to review the recent exchange and writes directly into a **multi-organ local store**: `MEMORY.md` (facts/rules) · `USER.md` (who-you-are) · SQLite + FTS5 (episodic search) · Honcho (third-person model) · `skills/` (procedural memory). The agent is allowed to edit its own skill files in stride — memory and capability are the same thing.
|
|
333
|
+
|
|
334
|
+
But these are all **per-agent** memories. Hive coordinates *teams* of agents, so the next step is wiring them together: let the whole team **share one long-term memory store** — what Worker A learned today becomes context the Orchestrator can dispatch to Worker B tomorrow.
|
|
335
|
+
|
|
336
|
+
We're planning to back this with **[EverOS](https://github.com/EverMind-AI/EverOS)**
|
|
337
|
+
— an open-source long-term memory OS from [EverMind](https://evermind.ai/),
|
|
338
|
+
currently SOTA on the LoCoMo / LongMemEval / HaluMem memory benchmarks.
|
|
339
|
+
Its four-layer architecture (Agentic / Memory / Index / API+MCP) maps
|
|
340
|
+
cleanly onto Hive's multi-PTY model: each agent keeps its in-CLI memory,
|
|
341
|
+
team-level facts flow through EverOS, and the Orchestrator joins both
|
|
342
|
+
when dispatching.
|
|
343
|
+
|
|
344
|
+
Track progress at [#6](https://github.com/tt-a1i/hive/issues/6) — drop a
|
|
345
|
+
+1 or comment with your use case to influence priority.
|
|
346
|
+
|
|
321
347
|
## A different form factor: squad
|
|
322
348
|
|
|
323
349
|
If you'd rather have **pure CLI, zero background process, and the ability to
|
|
@@ -328,6 +354,17 @@ per agent. The two projects don't replace each other; pick by workflow:
|
|
|
328
354
|
- **Hive** — visual workbench, one-click restart, workspace sidebar, easier to demo to a team
|
|
329
355
|
- **squad** — lives in tmux, SSH remote dev, no extra background process, Windows servers
|
|
330
356
|
|
|
357
|
+
## Acknowledgements
|
|
358
|
+
|
|
359
|
+
The built-in template marketplace ships snapshots of two community-maintained prompt libraries, both distributed under their upstream MIT licenses:
|
|
360
|
+
|
|
361
|
+
- English (used when the UI is set to EN): [`msitarzewski/agency-agents`](https://github.com/msitarzewski/agency-agents)
|
|
362
|
+
- Chinese (used when the UI is set to 中文): [`jnMetaCode/agency-agents-zh`](https://github.com/jnMetaCode/agency-agents-zh)
|
|
363
|
+
|
|
364
|
+
Upstream content is mirrored verbatim, license files are kept under `vendor/marketplace/<lang>/LICENSE`, and snapshots are refreshed by `pnpm sync:marketplace` before each Hive release.
|
|
365
|
+
|
|
331
366
|
## License
|
|
332
367
|
|
|
333
|
-
Hive is
|
|
368
|
+
Hive source is available under the Business Source License 1.1. Personal use, internal deployment, embedding, and forks are permitted — see [LICENSE.BSL](LICENSE.BSL) for the exact boundary.
|
|
369
|
+
|
|
370
|
+
Forks and redistributions must preserve [NOTICE](NOTICE), [LICENSE.BSL](LICENSE.BSL), and the applicable license files. The Hive name, logo, and visual identity are not licensed by the source license; see [TRADEMARK.md](TRADEMARK.md) for brand usage boundaries.
|
package/README.md
CHANGED
|
@@ -241,6 +241,25 @@ pnpm release:dry
|
|
|
241
241
|
|
|
242
242
|
Hive 目前处于 alpha 阶段,核心流程已可用。当前重点是继续打磨多 Agent 协作体验、Windows 支持和更清晰的调度可观测性。欢迎试用、提 issue——反馈会直接影响后续节奏。
|
|
243
243
|
|
|
244
|
+
## 在路上:跨 Agent 的长时记忆
|
|
245
|
+
|
|
246
|
+
<p align="center">
|
|
247
|
+
<a href="https://github.com/EverMind-AI/EverOS">
|
|
248
|
+
<img src="https://avatars.githubusercontent.com/EverMind-AI" width="72" alt="EverMind / EverOS" />
|
|
249
|
+
</a>
|
|
250
|
+
</p>
|
|
251
|
+
|
|
252
|
+
单 agent 现在已经各有各的"记忆"了——但风格其实差很多:
|
|
253
|
+
|
|
254
|
+
- **Claude Code 的 [Auto Dream](https://claudefa.st/blog/guide/mechanics/auto-dream)(俗称"做梦")** 走 **离线批处理** 路线:`/dream` 触发(或 24h 自动),Claude 在云端把 JSONL 会话归并去重抽模式,产出新版本 memory 库给你审查再采纳——像人类的 REM 睡眠,**清醒 / 睡眠二相**。
|
|
255
|
+
- **Hermes Agent** 反过来走 **嵌入式 / 在场** 路线:不睡,每 N 轮对话后台 fork 一个 sub-agent review,结果直接落进本地的 **多层记忆**——`MEMORY.md`(事实/规则)·`USER.md`(用户画像)·SQLite + FTS5(情景检索)·Honcho(第三人称表征)·`skills/`(程序性记忆)——而且 agent 允许边走边改自己的 skill 文件,记忆和能力是一回事。
|
|
256
|
+
|
|
257
|
+
但 **这些都是单 agent 内部的记忆**。Hive 是多 agent 协作工作台,下一步要做的事是把它们打通:让整支团队 **共享一座长时记忆库**——Worker A 今天踩的坑,明天 Orchestrator 派给 Worker B 时能自动调来当上下文。
|
|
258
|
+
|
|
259
|
+
底层我们计划接 **[EverOS](https://github.com/EverMind-AI/EverOS)**([EverMind](https://evermind.ai/) 出品的开源长时记忆 OS,目前在 LoCoMo / LongMemEval / HaluMem 三个记忆 benchmark 上 SOTA)当跨 agent 的记忆后端。它的四层架构(Agentic / Memory / Index / API+MCP)跟 Hive 的多 PTY 协作模型很搭:每个 agent 各跑各的 CLI session,团队级的事实和模式凝在 EverOS,Orchestrator 派单时一并喂给 worker。
|
|
260
|
+
|
|
261
|
+
进度跟踪:[#6](https://github.com/tt-a1i/hive/issues/6)——想看进度或提建议,在 issue 留 +1。
|
|
262
|
+
|
|
244
263
|
## 另一种形态:squad
|
|
245
264
|
|
|
246
265
|
如果你更喜欢 **纯 CLI、零后台进程、能直接在 SSH 进的远端服务器上跑** 的形态,[squad](https://github.com/mco-org/squad) 是同一个想法的另一条路线——SQLite 当通信层,每个 agent 各自开一个终端。两个项目互不替代,按工作流挑就行:
|
|
@@ -248,6 +267,17 @@ Hive 目前处于 alpha 阶段,核心流程已可用。当前重点是继续
|
|
|
248
267
|
- **Hive** — 想要可视化工作台、一键重启、侧边栏切 workspace、给团队演示
|
|
249
268
|
- **squad** — 活在 tmux 里、SSH 远端开发、不想跑额外后台进程、Windows server
|
|
250
269
|
|
|
270
|
+
## 鸣谢
|
|
271
|
+
|
|
272
|
+
Hive 的"模板市场"内置了两份社区角色 prompt 库的快照,两份都按各自上游的 MIT 许可分发:
|
|
273
|
+
|
|
274
|
+
- 英文版(界面切到 EN 时使用):[`msitarzewski/agency-agents`](https://github.com/msitarzewski/agency-agents)
|
|
275
|
+
- 中文版(界面切到中文时使用):[`jnMetaCode/agency-agents-zh`](https://github.com/jnMetaCode/agency-agents-zh)
|
|
276
|
+
|
|
277
|
+
上游内容未做修改,许可证文本保留在 `vendor/marketplace/<lang>/LICENSE`;快照通过 `pnpm sync:marketplace` 在 hive 发版前刷新。
|
|
278
|
+
|
|
251
279
|
## License
|
|
252
280
|
|
|
253
|
-
Hive
|
|
281
|
+
Hive 源码在 Business Source License 1.1 下提供。个人使用、内部部署、嵌入、fork 都可以;详细边界见 [LICENSE.BSL](LICENSE.BSL)。
|
|
282
|
+
|
|
283
|
+
Fork 或再分发版本必须保留 [NOTICE](NOTICE)、[LICENSE.BSL](LICENSE.BSL) 和相关许可证文件。Hive 名称、logo 和视觉识别不随源码许可证授权;品牌使用边界见 [TRADEMARK.md](TRADEMARK.md)。
|
package/TRADEMARK.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Trademark Guidelines
|
|
2
|
+
|
|
3
|
+
These guidelines apply to the Hive name, logo, icons, visual identity, and
|
|
4
|
+
other brand assets owned by Shaokun Tu (tt-a1i).
|
|
5
|
+
|
|
6
|
+
The source license for Hive grants rights to use, modify, and distribute the
|
|
7
|
+
software under the terms of LICENSE.BSL. It does not grant trademark rights.
|
|
8
|
+
|
|
9
|
+
## Permitted Uses
|
|
10
|
+
|
|
11
|
+
You may:
|
|
12
|
+
|
|
13
|
+
- Refer to Hive by name when describing compatibility, attribution, or that a
|
|
14
|
+
project is based on Hive.
|
|
15
|
+
- Use phrases such as "forked from Hive", "based on Hive", or "compatible with
|
|
16
|
+
Hive" when the relationship is accurate.
|
|
17
|
+
- Link to the upstream Hive repository and documentation.
|
|
18
|
+
|
|
19
|
+
## Uses That Need Permission
|
|
20
|
+
|
|
21
|
+
You need prior written permission to:
|
|
22
|
+
|
|
23
|
+
- Use the Hive name, logo, or icons as the primary name or identity of a fork,
|
|
24
|
+
distribution, hosted service, or commercial product.
|
|
25
|
+
- Present a fork or derivative work in a way that suggests it is official,
|
|
26
|
+
endorsed, sponsored, or maintained by tt-a1i.
|
|
27
|
+
- Register domains, social accounts, packages, apps, or marketplaces names that
|
|
28
|
+
are likely to confuse users about whether they are official Hive properties.
|
|
29
|
+
- Use Hive brand assets in paid advertising, product packaging, or hosted
|
|
30
|
+
service branding.
|
|
31
|
+
|
|
32
|
+
## Forks And Derivative Products
|
|
33
|
+
|
|
34
|
+
Forks should use a distinct product name and distinct visual identity. They
|
|
35
|
+
must preserve the applicable license files and NOTICE file, and should clearly
|
|
36
|
+
state that they are independent from upstream Hive unless a separate written
|
|
37
|
+
agreement says otherwise.
|
|
38
|
+
|
|
39
|
+
These guidelines do not change the software license. If there is a conflict
|
|
40
|
+
between this document and LICENSE.BSL, LICENSE.BSL controls software license
|
|
41
|
+
rights and this document controls brand usage.
|
package/dist/src/cli/hive.js
CHANGED
|
@@ -65,6 +65,26 @@ const maybePrintUpdateHint = async (versionService) => {
|
|
|
65
65
|
return;
|
|
66
66
|
console.log(`Hive update available: ${info.current_version} -> ${info.latest_version}. Run: ${info.install_hint}`);
|
|
67
67
|
};
|
|
68
|
+
const isListenError = (error) => error instanceof Error && typeof error.code === 'string';
|
|
69
|
+
const formatPortInUseMessage = (port) => [
|
|
70
|
+
`Hive could not start because port ${port} is already in use.`,
|
|
71
|
+
'',
|
|
72
|
+
'Another Hive instance may already be running:',
|
|
73
|
+
` http://127.0.0.1:${port}`,
|
|
74
|
+
'',
|
|
75
|
+
'Options:',
|
|
76
|
+
' - Open the existing Hive window.',
|
|
77
|
+
' - Stop the process using that port:',
|
|
78
|
+
` lsof -tiTCP:${port} -sTCP:LISTEN | xargs kill`,
|
|
79
|
+
' - Start Hive on another port:',
|
|
80
|
+
` hive --port ${port + 1}`,
|
|
81
|
+
].join('\n');
|
|
82
|
+
const formatListenError = (error, requestedPort) => {
|
|
83
|
+
if (isListenError(error) && error.code === 'EADDRINUSE') {
|
|
84
|
+
return new Error(formatPortInUseMessage(error.port ?? requestedPort));
|
|
85
|
+
}
|
|
86
|
+
return error;
|
|
87
|
+
};
|
|
68
88
|
export const runHiveCommand = async (argv, options = {}) => {
|
|
69
89
|
const port = parsePort(argv);
|
|
70
90
|
const dataDir = resolveDataDir();
|
|
@@ -76,13 +96,19 @@ export const runHiveCommand = async (argv, options = {}) => {
|
|
|
76
96
|
}),
|
|
77
97
|
versionService,
|
|
78
98
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
99
|
+
try {
|
|
100
|
+
app.server.listen(port, '127.0.0.1');
|
|
101
|
+
await Promise.race([
|
|
102
|
+
once(app.server, 'listening'),
|
|
103
|
+
once(app.server, 'error').then(([error]) => {
|
|
104
|
+
throw error;
|
|
105
|
+
}),
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
await app.store.close();
|
|
110
|
+
throw formatListenError(error, port);
|
|
111
|
+
}
|
|
86
112
|
const address = app.server.address();
|
|
87
113
|
if (!address || typeof address === 'string') {
|
|
88
114
|
throw new Error('Server did not bind to an inet port');
|
|
@@ -146,7 +172,7 @@ if (isMainModule) {
|
|
|
146
172
|
}
|
|
147
173
|
else {
|
|
148
174
|
runHiveCommand(argv).catch((error) => {
|
|
149
|
-
console.error(error);
|
|
175
|
+
console.error(error instanceof Error ? error.message : error);
|
|
150
176
|
process.exit(1);
|
|
151
177
|
});
|
|
152
178
|
}
|
package/dist/src/server/app.d.ts
CHANGED
|
@@ -8,10 +8,11 @@ interface CreateAppOptions {
|
|
|
8
8
|
store: RuntimeStore;
|
|
9
9
|
pickFolderService?: () => Promise<PickFolderResponse>;
|
|
10
10
|
openWorkspaceService?: OpenWorkspaceService;
|
|
11
|
+
packageVersionReader?: () => string;
|
|
11
12
|
tasksFileService?: TasksFileService;
|
|
12
13
|
versionService?: VersionService;
|
|
13
14
|
}
|
|
14
|
-
export declare const createApp: ({ store, pickFolderService, openWorkspaceService, tasksFileService, versionService, }: CreateAppOptions) => {
|
|
15
|
+
export declare const createApp: ({ store, pickFolderService, openWorkspaceService, packageVersionReader, tasksFileService, versionService, }: CreateAppOptions) => {
|
|
15
16
|
server: import("http").Server<typeof IncomingMessage, typeof ServerResponse>;
|
|
16
17
|
store: RuntimeStore;
|
|
17
18
|
};
|
package/dist/src/server/app.js
CHANGED
|
@@ -7,6 +7,7 @@ import { pickFolder } from './fs-pick-folder.js';
|
|
|
7
7
|
import { HttpError } from './http-errors.js';
|
|
8
8
|
import { assertLocalRequest } from './local-request-guard.js';
|
|
9
9
|
import { openWorkspace } from './open-target-commands.js';
|
|
10
|
+
import { readPackageVersion } from './package-version.js';
|
|
10
11
|
import { matchRoute } from './routes.js';
|
|
11
12
|
import { createTasksFileService } from './tasks-file.js';
|
|
12
13
|
import { createTerminalWebSocketServer } from './terminal-ws-server.js';
|
|
@@ -87,8 +88,64 @@ const sendJson = (response, statusCode, body) => {
|
|
|
87
88
|
response.setHeader('content-type', 'application/json; charset=utf-8');
|
|
88
89
|
response.end(JSON.stringify(body));
|
|
89
90
|
};
|
|
90
|
-
|
|
91
|
+
const escapeHtml = (value) => value
|
|
92
|
+
.replaceAll('&', '&')
|
|
93
|
+
.replaceAll('<', '<')
|
|
94
|
+
.replaceAll('>', '>')
|
|
95
|
+
.replaceAll('"', '"')
|
|
96
|
+
.replaceAll("'", ''');
|
|
97
|
+
const createVersionMismatchBody = (runtimeVersion, installedVersion) => `<!doctype html>
|
|
98
|
+
<html lang="en">
|
|
99
|
+
<head>
|
|
100
|
+
<meta charset="utf-8" />
|
|
101
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
102
|
+
<title>Restart Hive</title>
|
|
103
|
+
<style>
|
|
104
|
+
:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
|
|
105
|
+
body { align-items: center; background: #0d0f12; color: #f4f4f5; display: flex; justify-content: center; margin: 0; min-height: 100vh; }
|
|
106
|
+
main { border: 1px solid rgba(255,255,255,.12); border-radius: 14px; background: #17191d; box-shadow: 0 18px 64px rgba(0,0,0,.4); max-width: 520px; padding: 28px; }
|
|
107
|
+
h1 { font-size: 22px; line-height: 1.2; margin: 0 0 10px; }
|
|
108
|
+
p { color: #a1a1aa; font-size: 14px; line-height: 1.6; margin: 0 0 14px; }
|
|
109
|
+
code { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius: 6px; color: #e5e7eb; padding: 2px 6px; }
|
|
110
|
+
</style>
|
|
111
|
+
</head>
|
|
112
|
+
<body>
|
|
113
|
+
<main>
|
|
114
|
+
<h1>Restart Hive</h1>
|
|
115
|
+
<p>Hive was updated on disk while this runtime process was still running.</p>
|
|
116
|
+
<p>Running runtime: <code>${escapeHtml(runtimeVersion)}</code><br />Installed package: <code>${escapeHtml(installedVersion)}</code></p>
|
|
117
|
+
<p>Stop the current <code>hive</code> process and start it again to load the new UI and API together.</p>
|
|
118
|
+
</main>
|
|
119
|
+
</body>
|
|
120
|
+
</html>`;
|
|
121
|
+
const readVersionMismatch = (runtimeVersion, packageVersionReader) => {
|
|
122
|
+
const installedVersion = packageVersionReader();
|
|
123
|
+
if (runtimeVersion === 'unknown' ||
|
|
124
|
+
installedVersion === 'unknown' ||
|
|
125
|
+
installedVersion === runtimeVersion) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
return { installedVersion, runtimeVersion };
|
|
129
|
+
};
|
|
130
|
+
const sendVersionMismatchJson = (response, mismatch) => {
|
|
131
|
+
sendJson(response, 409, {
|
|
132
|
+
code: 'runtime_version_mismatch',
|
|
133
|
+
current_version: mismatch.runtimeVersion,
|
|
134
|
+
error: 'Hive was updated on disk. Restart the running hive process to use the new version.',
|
|
135
|
+
installed_version: mismatch.installedVersion,
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
const sendVersionMismatchPage = (response, request, mismatch) => {
|
|
139
|
+
response.statusCode = 409;
|
|
140
|
+
response.setHeader('content-type', 'text/html; charset=utf-8');
|
|
141
|
+
response.setHeader('cache-control', 'no-store');
|
|
142
|
+
response.end(request.method === 'HEAD'
|
|
143
|
+
? undefined
|
|
144
|
+
: createVersionMismatchBody(mismatch.runtimeVersion, mismatch.installedVersion));
|
|
145
|
+
};
|
|
146
|
+
export const createApp = ({ store, pickFolderService = pickFolder, openWorkspaceService = (input) => openWorkspace(input), packageVersionReader = readPackageVersion, tasksFileService = createTasksFileService(), versionService = createVersionService(), }) => {
|
|
91
147
|
const staticDir = process.env.HIVE_STATIC_DIR ?? getDefaultStaticDir();
|
|
148
|
+
const runtimeVersion = packageVersionReader();
|
|
92
149
|
const staticAvailablePromise = canServeStatic(staticDir);
|
|
93
150
|
const server = createServer(async (request, response) => {
|
|
94
151
|
const method = request.method ?? 'GET';
|
|
@@ -110,10 +167,20 @@ export const createApp = ({ store, pickFolderService = pickFolder, openWorkspace
|
|
|
110
167
|
return;
|
|
111
168
|
}
|
|
112
169
|
if (isReservedPath(url.pathname)) {
|
|
170
|
+
const mismatch = readVersionMismatch(runtimeVersion, packageVersionReader);
|
|
171
|
+
if (mismatch) {
|
|
172
|
+
sendVersionMismatchJson(response, mismatch);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
113
175
|
sendJson(response, 404, { error: 'Not found' });
|
|
114
176
|
return;
|
|
115
177
|
}
|
|
116
178
|
if (await staticAvailablePromise) {
|
|
179
|
+
const mismatch = readVersionMismatch(runtimeVersion, packageVersionReader);
|
|
180
|
+
if (mismatch) {
|
|
181
|
+
sendVersionMismatchPage(response, request, mismatch);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
117
184
|
const served = await sendStatic(response, staticDir, url.pathname, request);
|
|
118
185
|
if (served)
|
|
119
186
|
return;
|
|
@@ -31,6 +31,7 @@ const ORCHESTRATOR_RULES = [
|
|
|
31
31
|
'普通、低风险、几分钟内能直接完成的小任务可以自己做;不要为了形式感派 worker。需要并行、长时间执行、独立 review/test、专门角色,或 user 明确要求 worker/成员处理时,再用 `team send`。',
|
|
32
32
|
'如果只有一个可用 worker,直接用 `team send <worker-name> "<task>"` 派给它;不要把选择题丢回给 user。',
|
|
33
33
|
'当 user 要你“让 worker ...”时,必须用 `team send <worker-name> "<task>"` 派给 Hive worker。',
|
|
34
|
+
'派单时如果任务明显需要某种角色能力(例如代码评审、测试、安全审查),但 `team list` 中没有匹配 role 的成员,可以在回复 user 的自然语言部分(而非 `team send` 的任务正文)末尾用一句话建议添加该角色,例如:“如果这类任务后续会变多,可以考虑添加一个 reviewer”。仅在明显缺失时提;同一缺口在 user 未响应前不要重复建议。',
|
|
34
35
|
'方向变更或 user 明确取消某个未完成派单时,使用 `team cancel --dispatch <id> "<reason>"` 显式关闭旧 dispatch;不要只用自然语言说“取消”。',
|
|
35
36
|
'不要使用你所在 CLI 的内置 subagent / 子代理工具(如 Task / Explore 等)来代替 Hive worker;它们不会出现在 Hive UI,也不会更新 Hive 调度状态。',
|
|
36
37
|
'`team list` 返回的 `last_pty_line` 是该 worker PTY 终端的最后一行原始输出(含任意 stdout / help / 控制序列噪声),**不是** worker 的正式汇报。正式汇报只来自 stdin 注入的 `[Hive 系统消息:来自 @<name> 的汇报]` 或 `[Hive 系统消息:来自 @<name> 的状态更新]`——只把这两种来源当作 reply。',
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type MarketplaceLanguage = 'en' | 'zh';
|
|
2
|
+
export interface MarketplaceAgentEntry {
|
|
3
|
+
path: string;
|
|
4
|
+
category: string;
|
|
5
|
+
name: string;
|
|
6
|
+
displayName?: string;
|
|
7
|
+
nameOverflows?: boolean;
|
|
8
|
+
description: string;
|
|
9
|
+
emoji: string | null;
|
|
10
|
+
color: string | null;
|
|
11
|
+
vibe: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface MarketplaceManifest {
|
|
14
|
+
source: {
|
|
15
|
+
repo: string;
|
|
16
|
+
commit: string;
|
|
17
|
+
fetched_at: string;
|
|
18
|
+
};
|
|
19
|
+
language: MarketplaceLanguage;
|
|
20
|
+
categories: string[];
|
|
21
|
+
agents: MarketplaceAgentEntry[];
|
|
22
|
+
}
|
|
23
|
+
export interface MarketplaceAgentDetail {
|
|
24
|
+
path: string;
|
|
25
|
+
frontmatter: Record<string, unknown>;
|
|
26
|
+
body: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class MarketplaceNotFoundError extends Error {
|
|
29
|
+
constructor(message: string);
|
|
30
|
+
}
|
|
31
|
+
export declare const isMarketplaceLanguage: (value: unknown) => value is MarketplaceLanguage;
|
|
32
|
+
/**
|
|
33
|
+
* Where on disk the bundled marketplace lives. Tests inject a fixture via
|
|
34
|
+
* `HIVE_MARKETPLACE_VENDOR_ROOT` (mirrors fs-sandbox's HIVE_FS_BROWSE_ROOT).
|
|
35
|
+
*/
|
|
36
|
+
export declare const getMarketplaceVendorRoot: () => string;
|
|
37
|
+
export declare const loadManifest: (language: MarketplaceLanguage) => MarketplaceManifest;
|
|
38
|
+
export declare const readAgent: (language: MarketplaceLanguage, relativePath: string) => MarketplaceAgentDetail;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Marketplace store — read-only access to the bundled `vendor/marketplace/`
|
|
2
|
+
// snapshot of upstream agent prompt repos (one per UI language).
|
|
3
|
+
//
|
|
4
|
+
// **Vendor path invariant**: `new URL('../../vendor/marketplace', import.meta.url)`
|
|
5
|
+
// resolves the same in dev and dist because `tsconfig.json` has `rootDir: "."`.
|
|
6
|
+
// - dev: this file is `src/server/marketplace-store.ts` → repo-root `vendor/`
|
|
7
|
+
// - dist: this file is `dist/src/server/marketplace-store.js` → `dist/vendor/`
|
|
8
|
+
//
|
|
9
|
+
// The build hook (`scripts/prepare-build-artifacts.mjs`) copies the source-of-
|
|
10
|
+
// truth `vendor/marketplace/` into `dist/vendor/marketplace/` at pack time. If
|
|
11
|
+
// either the `rootDir` setting or the build hook changes, that invariant must
|
|
12
|
+
// be re-verified — there is no fallback path.
|
|
13
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
14
|
+
import { resolve } from 'node:path';
|
|
15
|
+
import { fileURLToPath } from 'node:url';
|
|
16
|
+
import matter from 'gray-matter';
|
|
17
|
+
import { isPathWithinRoot } from './fs-sandbox.js';
|
|
18
|
+
export class MarketplaceNotFoundError extends Error {
|
|
19
|
+
constructor(message) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = 'MarketplaceNotFoundError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const SUPPORTED_LANGUAGES = new Set(['en', 'zh']);
|
|
25
|
+
export const isMarketplaceLanguage = (value) => typeof value === 'string' && SUPPORTED_LANGUAGES.has(value);
|
|
26
|
+
const defaultVendorRoot = () => fileURLToPath(new URL('../../vendor/marketplace', import.meta.url));
|
|
27
|
+
/**
|
|
28
|
+
* Where on disk the bundled marketplace lives. Tests inject a fixture via
|
|
29
|
+
* `HIVE_MARKETPLACE_VENDOR_ROOT` (mirrors fs-sandbox's HIVE_FS_BROWSE_ROOT).
|
|
30
|
+
*/
|
|
31
|
+
export const getMarketplaceVendorRoot = () => {
|
|
32
|
+
const override = process.env.HIVE_MARKETPLACE_VENDOR_ROOT;
|
|
33
|
+
return override && override.length > 0 ? resolve(override) : defaultVendorRoot();
|
|
34
|
+
};
|
|
35
|
+
const languageRoot = (language, vendorRoot = getMarketplaceVendorRoot()) => resolve(vendorRoot, language);
|
|
36
|
+
const manifestCache = new Map();
|
|
37
|
+
const agentCache = new Map();
|
|
38
|
+
export const loadManifest = (language) => {
|
|
39
|
+
const vendorRoot = getMarketplaceVendorRoot();
|
|
40
|
+
const cacheKey = `${vendorRoot}\0${language}`;
|
|
41
|
+
const cached = manifestCache.get(cacheKey);
|
|
42
|
+
if (cached)
|
|
43
|
+
return cached;
|
|
44
|
+
const manifestPath = resolve(languageRoot(language, vendorRoot), 'manifest.json');
|
|
45
|
+
if (!existsSync(manifestPath)) {
|
|
46
|
+
throw new MarketplaceNotFoundError(`Marketplace manifest missing for language: ${language}`);
|
|
47
|
+
}
|
|
48
|
+
const raw = readFileSync(manifestPath, 'utf8');
|
|
49
|
+
const manifest = JSON.parse(raw);
|
|
50
|
+
manifestCache.set(cacheKey, manifest);
|
|
51
|
+
return manifest;
|
|
52
|
+
};
|
|
53
|
+
export const readAgent = (language, relativePath) => {
|
|
54
|
+
if (!relativePath.endsWith('.md')) {
|
|
55
|
+
throw new MarketplaceNotFoundError(`Marketplace agent path must end with .md: ${relativePath}`);
|
|
56
|
+
}
|
|
57
|
+
const vendorRoot = getMarketplaceVendorRoot();
|
|
58
|
+
const root = languageRoot(language, vendorRoot);
|
|
59
|
+
const candidate = resolve(root, relativePath);
|
|
60
|
+
if (!isPathWithinRoot(root, candidate)) {
|
|
61
|
+
throw new MarketplaceNotFoundError(`Marketplace agent path escapes language root: ${relativePath}`);
|
|
62
|
+
}
|
|
63
|
+
if (!existsSync(candidate)) {
|
|
64
|
+
throw new MarketplaceNotFoundError(`Marketplace agent not found: ${language}/${relativePath}`);
|
|
65
|
+
}
|
|
66
|
+
// Guard against upstream pushing a directory whose name ends in `.md` —
|
|
67
|
+
// the suffix check would pass, existsSync would pass, but readFileSync
|
|
68
|
+
// would throw EISDIR. Surface as a 404 instead of a 500.
|
|
69
|
+
if (!statSync(candidate).isFile()) {
|
|
70
|
+
throw new MarketplaceNotFoundError(`Marketplace agent not a file: ${language}/${relativePath}`);
|
|
71
|
+
}
|
|
72
|
+
const cacheKey = `${vendorRoot}\0${language}\0${relativePath}`;
|
|
73
|
+
const cached = agentCache.get(cacheKey);
|
|
74
|
+
if (cached)
|
|
75
|
+
return cached;
|
|
76
|
+
const raw = readFileSync(candidate, 'utf8');
|
|
77
|
+
const parsed = matter(raw);
|
|
78
|
+
const detail = {
|
|
79
|
+
path: relativePath,
|
|
80
|
+
frontmatter: parsed.data,
|
|
81
|
+
body: parsed.content,
|
|
82
|
+
};
|
|
83
|
+
agentCache.set(cacheKey, detail);
|
|
84
|
+
return detail;
|
|
85
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { isMarketplaceLanguage, loadManifest, MarketplaceNotFoundError, readAgent, } from './marketplace-store.js';
|
|
2
|
+
import { route, sendJson } from './route-helpers.js';
|
|
3
|
+
import { requireUiTokenFromRequest } from './ui-auth-helpers.js';
|
|
4
|
+
const readLanguageParam = (request) => {
|
|
5
|
+
const url = new URL(request.url ?? '/', 'http://127.0.0.1');
|
|
6
|
+
return url.searchParams.get('lang');
|
|
7
|
+
};
|
|
8
|
+
const readPathParam = (request) => {
|
|
9
|
+
const url = new URL(request.url ?? '/', 'http://127.0.0.1');
|
|
10
|
+
return url.searchParams.get('path') ?? '';
|
|
11
|
+
};
|
|
12
|
+
export const marketplaceRoutes = [
|
|
13
|
+
route('GET', '/api/marketplace/manifest', ({ request, response, store }) => {
|
|
14
|
+
requireUiTokenFromRequest(request, store.validateUiToken);
|
|
15
|
+
const lang = readLanguageParam(request);
|
|
16
|
+
if (!isMarketplaceLanguage(lang)) {
|
|
17
|
+
sendJson(response, 400, { error: 'Invalid or missing lang parameter (expected en|zh)' });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
sendJson(response, 200, loadManifest(lang));
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error instanceof MarketplaceNotFoundError) {
|
|
25
|
+
sendJson(response, 404, { error: error.message });
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}),
|
|
31
|
+
route('GET', '/api/marketplace/agent', ({ request, response, store }) => {
|
|
32
|
+
requireUiTokenFromRequest(request, store.validateUiToken);
|
|
33
|
+
const lang = readLanguageParam(request);
|
|
34
|
+
if (!isMarketplaceLanguage(lang)) {
|
|
35
|
+
sendJson(response, 400, { error: 'Invalid or missing lang parameter (expected en|zh)' });
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const relativePath = readPathParam(request);
|
|
39
|
+
if (!relativePath) {
|
|
40
|
+
sendJson(response, 400, { error: 'Missing path parameter' });
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
sendJson(response, 200, readAgent(lang, relativePath));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error instanceof MarketplaceNotFoundError) {
|
|
48
|
+
sendJson(response, 404, { error: error.message });
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}),
|
|
54
|
+
];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { matchPath } from './route-helpers.js';
|
|
2
2
|
import { dispatchRoutes } from './routes-dispatches.js';
|
|
3
3
|
import { fsRoutes } from './routes-fs.js';
|
|
4
|
+
import { marketplaceRoutes } from './routes-marketplace.js';
|
|
4
5
|
import { openWorkspaceRoutes } from './routes-open-workspace.js';
|
|
5
6
|
import { runtimeRoutes } from './routes-runtime.js';
|
|
6
7
|
import { settingsRoutes } from './routes-settings.js';
|
|
@@ -20,6 +21,7 @@ const routes = [
|
|
|
20
21
|
...runtimeRoutes,
|
|
21
22
|
...teamRoutes,
|
|
22
23
|
...fsRoutes,
|
|
24
|
+
...marketplaceRoutes,
|
|
23
25
|
];
|
|
24
26
|
export const matchRoute = (method, pathname) => {
|
|
25
27
|
for (const routeDefinition of routes) {
|
|
@@ -24,9 +24,11 @@ export const getWorkerByNameRecord = (workspaces, workspaceId, workerName) => {
|
|
|
24
24
|
return worker;
|
|
25
25
|
};
|
|
26
26
|
export const markAgentStarted = (workspaces, workspaceId, agentId) => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
// Worker status tracks "is this agent currently working", not "are there
|
|
28
|
+
// pending tasks". A freshly started PTY hasn't done anything yet, even if
|
|
29
|
+
// dispatch ledger replayed pendingTaskCount > 0 during hydration. The next
|
|
30
|
+
// team send will flip status to 'working' via markTaskDispatched.
|
|
31
|
+
getAgentRecord(workspaces, workspaceId, agentId).status = 'idle';
|
|
30
32
|
};
|
|
31
33
|
export const markAgentStopped = (workspaces, workspaceId, agentId) => {
|
|
32
34
|
getAgentRecord(workspaces, workspaceId, agentId).status = 'stopped';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 AgentLand Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Source attribution
|
|
2
|
+
|
|
3
|
+
This directory mirrors [msitarzewski/agency-agents](https://github.com/msitarzewski/agency-agents) at commit `783f6a72bfd7f3135700ac273c619d92821b419a`.
|
|
4
|
+
|
|
5
|
+
- Language: en
|
|
6
|
+
- Agents: 184
|
|
7
|
+
- Synced: 2026-05-22T12:26:20.094Z
|
|
8
|
+
- License: MIT (see LICENSE in this directory)
|
|
9
|
+
|
|
10
|
+
All markdown content is unmodified from upstream. Hive only filters out top-level
|
|
11
|
+
meta files (READMEs, CATALOG, etc.) and parses YAML frontmatter to build the
|
|
12
|
+
manifest. To refresh, run `pnpm sync:marketplace` at the hive repo root.
|