mumucc 0.4.4 → 0.4.10
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/defaults/plugin-seed/known_marketplaces.json +11 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/.claude-plugin/marketplace.json +1016 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/accessibility-compliance/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/accessibility-compliance/agents/ui-visual-validator.md +192 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/accessibility-compliance/commands/accessibility-audit.md +510 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/accessibility-compliance/skills/screen-reader-testing/SKILL.md +538 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/accessibility-compliance/skills/wcag-audit-patterns/SKILL.md +548 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-orchestration/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-orchestration/agents/context-manager.md +163 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-orchestration/commands/improve-agent.md +319 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-orchestration/commands/multi-agent-optimize.md +209 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/README.md +153 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/agents/team-debugger.md +83 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/agents/team-implementer.md +85 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/agents/team-lead.md +91 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/agents/team-reviewer.md +102 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/commands/team-debug.md +91 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/commands/team-delegate.md +94 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/commands/team-feature.md +114 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/commands/team-review.md +78 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/commands/team-shutdown.md +50 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/commands/team-spawn.md +105 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/commands/team-status.md +60 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/multi-reviewer-patterns/SKILL.md +127 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/multi-reviewer-patterns/references/review-dimensions.md +127 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/parallel-debugging/SKILL.md +133 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/parallel-debugging/references/hypothesis-testing.md +120 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/parallel-feature-development/SKILL.md +174 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/parallel-feature-development/references/file-ownership.md +80 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/parallel-feature-development/references/merge-strategies.md +75 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/task-coordination-strategies/SKILL.md +163 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/task-coordination-strategies/references/dependency-graphs.md +97 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/task-coordination-strategies/references/task-decomposition.md +98 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/team-communication-protocols/SKILL.md +177 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/team-communication-protocols/references/messaging-patterns.md +112 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/team-composition-patterns/SKILL.md +141 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/team-composition-patterns/references/agent-type-selection.md +84 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/agent-teams/skills/team-composition-patterns/references/preset-teams.md +265 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-scaffolding/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-scaffolding/agents/backend-architect.md +309 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-scaffolding/agents/django-pro.md +159 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-scaffolding/agents/fastapi-pro.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-scaffolding/agents/graphql-architect.md +161 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-scaffolding/skills/fastapi-templates/SKILL.md +540 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-testing-observability/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-testing-observability/agents/api-documenter.md +161 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/api-testing-observability/commands/api-mock.md +1335 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/application-performance/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/application-performance/agents/frontend-developer.md +164 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/application-performance/agents/observability-engineer.md +230 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/application-performance/agents/performance-engineer.md +167 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/application-performance/commands/performance-optimization.md +681 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/arm-cortex-microcontrollers/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/arm-cortex-microcontrollers/agents/arm-cortex-expert.md +288 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-api-security/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-api-security/agents/backend-architect.md +309 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-api-security/agents/backend-security-coder.md +153 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/backend-architect.md +309 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/event-sourcing-architect.md +46 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/graphql-architect.md +161 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/performance-engineer.md +44 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/security-auditor.md +41 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/tdd-orchestrator.md +183 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/temporal-python-pro.md +349 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/agents/test-automator.md +41 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/commands/feature-development.md +481 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/api-design-principles/SKILL.md +518 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/architecture-patterns/SKILL.md +494 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/architecture-patterns/references/advanced-patterns.md +391 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/cqrs-implementation/SKILL.md +549 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/event-store-design/SKILL.md +431 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/microservices-patterns/SKILL.md +564 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/projection-patterns/SKILL.md +485 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/saga-orchestration/SKILL.md +361 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/saga-orchestration/references/advanced-patterns.md +453 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/temporal-python-testing/SKILL.md +158 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/temporal-python-testing/resources/integration-testing.md +455 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/temporal-python-testing/resources/local-setup.md +553 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/temporal-python-testing/resources/replay-testing.md +462 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/temporal-python-testing/resources/unit-testing.md +328 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/backend-development/skills/workflow-orchestration-patterns/SKILL.md +316 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/block-no-verify/.claude-plugin/plugin.json +9 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/block-no-verify/commands/block-no-verify.md +90 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/block-no-verify/skills/block-no-verify-hook/SKILL.md +193 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/blockchain-web3/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/blockchain-web3/agents/blockchain-developer.md +187 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/blockchain-web3/skills/defi-protocol-templates/SKILL.md +424 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/blockchain-web3/skills/nft-standards/SKILL.md +355 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/blockchain-web3/skills/solidity-security/SKILL.md +496 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/blockchain-web3/skills/web3-testing/SKILL.md +390 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/business-analytics/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/business-analytics/agents/business-analyst.md +161 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/business-analytics/skills/data-storytelling/SKILL.md +447 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/business-analytics/skills/kpi-dashboard-design/SKILL.md +493 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/c4-architecture/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/c4-architecture/agents/c4-code.md +320 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/c4-architecture/agents/c4-component.md +227 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/c4-architecture/agents/c4-container.md +248 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/c4-architecture/agents/c4-context.md +235 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/c4-architecture/commands/c4-architecture.md +367 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/agents/cloud-architect.md +128 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/agents/deployment-engineer.md +157 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/agents/devops-troubleshooter.md +155 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/agents/kubernetes-architect.md +156 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/agents/terraform-specialist.md +154 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/commands/workflow-automate.md +1364 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/skills/deployment-pipeline-design/SKILL.md +500 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/skills/deployment-pipeline-design/references/advanced-strategies.md +629 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/skills/github-actions-templates/SKILL.md +328 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/skills/gitlab-ci-patterns/SKILL.md +267 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cicd-automation/skills/secrets-management/SKILL.md +347 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/agents/cloud-architect.md +128 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/agents/deployment-engineer.md +158 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/agents/hybrid-cloud-architect.md +163 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/agents/kubernetes-architect.md +156 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/agents/network-engineer.md +165 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/agents/service-mesh-expert.md +42 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/agents/terraform-specialist.md +154 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/cost-optimization/SKILL.md +313 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/cost-optimization/references/tagging-standards.md +23 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/hybrid-cloud-networking/SKILL.md +256 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/hybrid-cloud-networking/references/direct-connect.md +17 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/istio-traffic-management/SKILL.md +321 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/linkerd-patterns/SKILL.md +305 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/mtls-configuration/SKILL.md +342 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/multi-cloud-architecture/SKILL.md +179 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/multi-cloud-architecture/references/multi-cloud-patterns.md +26 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/multi-cloud-architecture/references/service-comparison.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/service-mesh-observability/SKILL.md +378 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/terraform-module-library/SKILL.md +251 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/terraform-module-library/references/aws-modules.md +70 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/cloud-infrastructure/skills/terraform-module-library/references/oci-modules.md +52 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-documentation/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-documentation/agents/code-reviewer.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-documentation/agents/docs-architect.md +78 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-documentation/agents/tutorial-engineer.md +125 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-documentation/commands/code-explain.md +845 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-documentation/commands/doc-generate.md +677 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-refactoring/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-refactoring/agents/code-reviewer.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-refactoring/agents/legacy-modernizer.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-refactoring/commands/context-restore.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-refactoring/commands/refactor-clean.md +925 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/code-refactoring/commands/tech-debt.md +398 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/codebase-cleanup/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/codebase-cleanup/agents/code-reviewer.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/codebase-cleanup/agents/test-automator.md +220 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/codebase-cleanup/commands/deps-audit.md +791 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/codebase-cleanup/commands/refactor-clean.md +925 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/codebase-cleanup/commands/tech-debt.md +398 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/comprehensive-review/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/comprehensive-review/agents/architect-review.md +162 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/comprehensive-review/agents/code-reviewer.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/comprehensive-review/agents/security-auditor.md +156 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/comprehensive-review/commands/full-review.md +597 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/comprehensive-review/commands/pr-enhance.md +709 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/README.md +125 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/agents/conductor-validator.md +245 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/commands/implement.md +369 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/commands/manage.md +1126 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/commands/new-track.md +414 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/commands/revert.md +353 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/commands/setup.md +406 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/commands/status.md +319 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/skills/context-driven-development/SKILL.md +393 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/skills/context-driven-development/references/artifact-templates.md +154 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/skills/track-management/SKILL.md +593 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/skills/workflow-patterns/SKILL.md +623 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/csharp.md +600 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/dart.md +668 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/general.md +235 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/go.md +562 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/html-css.md +618 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/javascript.md +569 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/python.md +566 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/code_styleguides/typescript.md +451 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/index.md +90 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/product-guidelines.md +196 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/product.md +102 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/tech-stack.md +204 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/track-metadata.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/track-plan.md +198 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/track-spec.md +169 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/tracks.md +62 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/conductor/templates/workflow.md +192 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/content-marketing/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/content-marketing/agents/content-marketer.md +163 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/content-marketing/agents/search-specialist.md +59 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/context-management/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/context-management/agents/context-manager.md +163 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/context-management/commands/context-restore.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/context-management/commands/context-save.md +177 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/customer-sales-automation/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/customer-sales-automation/agents/customer-support.md +163 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/customer-sales-automation/agents/sales-automator.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/agents/backend-architect.md +309 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/agents/data-engineer.md +227 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/commands/data-driven-feature.md +784 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/commands/data-pipeline.md +209 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/skills/airflow-dag-patterns/SKILL.md +519 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/skills/data-quality-frameworks/SKILL.md +583 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/skills/dbt-transformation-patterns/SKILL.md +556 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-engineering/skills/spark-optimization/SKILL.md +411 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-validation-suite/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/data-validation-suite/agents/backend-security-coder.md +153 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-cloud-optimization/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-cloud-optimization/agents/backend-architect.md +309 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-cloud-optimization/agents/cloud-architect.md +128 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-cloud-optimization/agents/database-architect.md +263 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-cloud-optimization/agents/database-optimizer.md +162 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-cloud-optimization/commands/cost-optimize.md +1459 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-design/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-design/agents/database-architect.md +263 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-design/agents/sql-pro.md +161 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-design/skills/postgresql/SKILL.md +202 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-migrations/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-migrations/agents/database-admin.md +160 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-migrations/agents/database-optimizer.md +162 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-migrations/commands/migration-observability.md +413 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/database-migrations/commands/sql-migrations.md +505 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/debugging-toolkit/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/debugging-toolkit/agents/debugger.md +33 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/debugging-toolkit/agents/dx-optimizer.md +63 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/debugging-toolkit/commands/smart-debug.md +197 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dependency-management/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dependency-management/agents/legacy-modernizer.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dependency-management/commands/deps-audit.md +791 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/deployment-strategies/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/deployment-strategies/agents/deployment-engineer.md +158 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/deployment-strategies/agents/terraform-specialist.md +154 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/deployment-validation/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/deployment-validation/agents/cloud-architect.md +128 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/deployment-validation/commands/config-validate.md +491 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/agents/monorepo-architect.md +45 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/auth-implementation-patterns/SKILL.md +638 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/bazel-build-optimization/SKILL.md +381 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/code-review-excellence/SKILL.md +529 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/debugging-strategies/SKILL.md +527 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/e2e-testing-patterns/SKILL.md +535 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/error-handling-patterns/SKILL.md +632 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/git-advanced-workflows/SKILL.md +396 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/monorepo-management/SKILL.md +614 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/nx-workspace-patterns/SKILL.md +451 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/sql-optimization-patterns/SKILL.md +499 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/developer-essentials/skills/turborepo-caching/SKILL.md +370 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/distributed-debugging/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/distributed-debugging/agents/devops-troubleshooter.md +155 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/distributed-debugging/agents/error-detective.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/distributed-debugging/commands/debug-trace.md +1380 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/agents/api-documenter.md +161 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/agents/docs-architect.md +78 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/agents/mermaid-expert.md +43 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/agents/reference-builder.md +181 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/agents/tutorial-engineer.md +125 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/commands/doc-generate.md +677 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/skills/architecture-decision-records/SKILL.md +441 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/skills/changelog-automation/SKILL.md +572 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/skills/openapi-spec-generation/SKILL.md +536 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-generation/skills/openapi-spec-generation/references/code-first-and-tooling.md +491 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-standards/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/documentation-standards/skills/hads/SKILL.md +189 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/README.md +135 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/agents/dotnet-architect.md +183 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/skills/dotnet-backend-patterns/SKILL.md +810 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/skills/dotnet-backend-patterns/references/dapper-patterns.md +546 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/dotnet-contribution/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-debugging/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-debugging/agents/debugger.md +33 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-debugging/agents/error-detective.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-debugging/commands/error-analysis.md +1196 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-debugging/commands/error-trace.md +1388 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-debugging/commands/multi-agent-review.md +208 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-diagnostics/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-diagnostics/agents/debugger.md +33 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-diagnostics/agents/error-detective.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-diagnostics/commands/error-analysis.md +1196 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-diagnostics/commands/error-trace.md +1388 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/error-diagnostics/commands/smart-debug.md +197 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/agents/architect-review.md +162 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/agents/legacy-modernizer.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/commands/code-migrate.md +1059 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/commands/deps-upgrade.md +762 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/commands/legacy-modernize.md +659 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/skills/angular-migration/SKILL.md +386 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/skills/database-migration/SKILL.md +403 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/skills/dependency-upgrade/SKILL.md +368 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/framework-migration/skills/react-modernization/SKILL.md +497 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/agents/frontend-developer.md +164 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/agents/mobile-developer.md +202 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/commands/component-scaffold.md +409 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/skills/nextjs-app-router-patterns/SKILL.md +537 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/skills/react-native-architecture/SKILL.md +666 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/skills/react-state-management/SKILL.md +430 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/skills/tailwind-design-system/SKILL.md +565 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-development/skills/tailwind-design-system/references/advanced-patterns.md +319 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-security/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-security/agents/frontend-developer.md +164 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-security/agents/frontend-security-coder.md +166 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-security/agents/mobile-security-coder.md +181 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/frontend-mobile-security/commands/xss-scan.md +328 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/full-stack-orchestration/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/full-stack-orchestration/agents/deployment-engineer.md +158 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/full-stack-orchestration/agents/performance-engineer.md +167 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/full-stack-orchestration/agents/security-auditor.md +156 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/full-stack-orchestration/agents/test-automator.md +220 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/full-stack-orchestration/commands/full-stack-feature.md +593 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/functional-programming/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/functional-programming/agents/elixir-pro.md +38 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/functional-programming/agents/haskell-pro.md +39 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/game-development/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/game-development/agents/minecraft-bukkit-pro.md +115 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/game-development/agents/unity-developer.md +228 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/game-development/skills/godot-gdscript-patterns/SKILL.md +564 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/game-development/skills/godot-gdscript-patterns/references/advanced-patterns.md +247 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/game-development/skills/unity-ecs-patterns/SKILL.md +622 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/git-pr-workflows/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/git-pr-workflows/agents/code-reviewer.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/git-pr-workflows/commands/git-workflow.md +598 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/git-pr-workflows/commands/onboard.md +414 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/git-pr-workflows/commands/pr-enhance.md +709 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/hr-legal-compliance/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/hr-legal-compliance/agents/hr-pro.md +121 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/hr-legal-compliance/agents/legal-advisor.md +53 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/hr-legal-compliance/skills/employment-contract-templates/SKILL.md +520 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/hr-legal-compliance/skills/gdpr-data-handling/SKILL.md +624 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/agents/code-reviewer.md +32 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/agents/debugger.md +33 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/agents/devops-troubleshooter.md +155 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/agents/error-detective.md +31 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/agents/incident-responder.md +216 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/agents/test-automator.md +32 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/commands/incident-response.md +601 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/commands/smart-fix.md +539 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/skills/incident-runbook-templates/SKILL.md +472 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/skills/on-call-handoff-patterns/SKILL.md +331 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/incident-response/skills/postmortem-writing/SKILL.md +390 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/agents/javascript-pro.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/agents/typescript-pro.md +36 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/commands/typescript-scaffold.md +353 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/skills/javascript-testing-patterns/SKILL.md +537 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/skills/javascript-testing-patterns/references/advanced-testing-patterns.md +513 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/skills/modern-javascript-patterns/SKILL.md +495 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/skills/modern-javascript-patterns/references/advanced-patterns.md +487 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/skills/nodejs-backend-patterns/SKILL.md +639 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/skills/nodejs-backend-patterns/references/advanced-patterns.md +430 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/javascript-typescript/skills/typescript-advanced-types/SKILL.md +717 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/julia-development/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/julia-development/agents/julia-pro.md +204 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/jvm-languages/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/jvm-languages/agents/csharp-pro.md +38 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/jvm-languages/agents/java-pro.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/jvm-languages/agents/scala-pro.md +66 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/agents/kubernetes-architect.md +156 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/gitops-workflow/SKILL.md +289 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/gitops-workflow/references/argocd-setup.md +144 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/gitops-workflow/references/sync-policies.md +139 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/helm-chart-scaffolding/SKILL.md +560 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/helm-chart-scaffolding/references/chart-structure.md +509 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-manifest-generator/SKILL.md +534 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-manifest-generator/references/deployment-spec.md +780 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-manifest-generator/references/service-spec.md +748 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-security-policies/SKILL.md +347 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/kubernetes-operations/skills/k8s-security-policies/references/rbac-patterns.md +199 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/README.md +88 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/agents/ai-engineer.md +158 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/agents/prompt-engineer.md +276 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/agents/vector-database-engineer.md +117 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/commands/ai-assistant.md +1249 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/commands/langchain-agent.md +238 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/commands/prompt-optimize.md +629 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/embedding-strategies/SKILL.md +600 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/hybrid-search-implementation/SKILL.md +564 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/langchain-architecture/SKILL.md +634 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/llm-evaluation/SKILL.md +666 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/SKILL.md +473 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/assets/prompt-template-library.md +264 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/references/chain-of-thought.md +412 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/references/few-shot-learning.md +386 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/references/prompt-optimization.md +428 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/references/prompt-templates.md +484 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/references/system-prompts.md +195 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/rag-implementation/SKILL.md +542 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/similarity-search-patterns/SKILL.md +553 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/llm-application-dev/skills/vector-index-tuning/SKILL.md +517 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/machine-learning-ops/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/machine-learning-ops/agents/data-scientist.md +195 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/machine-learning-ops/agents/ml-engineer.md +162 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/machine-learning-ops/agents/mlops-engineer.md +229 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/machine-learning-ops/commands/ml-pipeline.md +301 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/machine-learning-ops/skills/ml-pipeline-workflow/SKILL.md +248 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/meigen-ai-design/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/meigen-ai-design/README.md +112 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/meigen-ai-design/agents/gallery-researcher.md +43 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/meigen-ai-design/agents/image-generator.md +55 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/meigen-ai-design/agents/prompt-crafter.md +55 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/meigen-ai-design/commands/find.md +23 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/meigen-ai-design/commands/gen.md +27 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/agents/backend-architect.md +309 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/agents/flutter-expert.md +195 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/agents/frontend-developer.md +164 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/agents/ios-developer.md +217 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/agents/mobile-developer.md +202 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/agents/ui-ux-designer.md +206 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/multi-platform-apps/commands/multi-platform.md +557 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/agents/database-optimizer.md +162 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/agents/network-engineer.md +165 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/agents/observability-engineer.md +230 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/agents/performance-engineer.md +167 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/commands/monitor-setup.md +520 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/commands/slo-implement.md +1068 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/skills/distributed-tracing/SKILL.md +449 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/skills/grafana-dashboards/SKILL.md +382 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/skills/prometheus-configuration/SKILL.md +394 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/observability-monitoring/skills/slo-implementation/SKILL.md +333 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/payment-processing/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/payment-processing/agents/payment-integration.md +63 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/payment-processing/skills/billing-automation/SKILL.md +537 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/payment-processing/skills/paypal-integration/SKILL.md +450 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/payment-processing/skills/pci-compliance/SKILL.md +448 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/payment-processing/skills/stripe-integration/SKILL.md +492 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/performance-testing-review/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/performance-testing-review/agents/performance-engineer.md +167 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/performance-testing-review/agents/test-automator.md +220 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/performance-testing-review/commands/ai-review.md +457 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/performance-testing-review/commands/multi-agent-review.md +208 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/.claude-plugin/plugin.json +3 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/README.md +38 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/agents/eval-judge.md +69 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/agents/eval-orchestrator.md +66 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/commands/certify.md +15 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/commands/compare.md +13 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/commands/eval.md +70 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/pyproject.toml +56 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/skills/evaluation-methodology/SKILL.md +550 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/skills/evaluation-methodology/references/rubrics.md +511 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/__init__.py +3 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/cli.py +165 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/corpus.py +123 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/elo.py +50 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/engine.py +349 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/layers/__init__.py +0 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/layers/judge.py +296 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/layers/monte_carlo.py +348 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/layers/static.py +443 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/models.py +167 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/parser.py +198 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/py.typed +0 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/reporter.py +184 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/src/plugin_eval/stats.py +183 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/__init__.py +0 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/conftest.py +79 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_cli.py +31 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_corpus.py +25 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_e2e.py +47 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_elo.py +48 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_engine.py +42 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_judge.py +58 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_models.py +102 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_monte_carlo.py +45 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_parser.py +47 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_reporter.py +32 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_static.py +45 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/tests/test_stats.py +100 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/plugin-eval/uv.lock +1065 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/agents/django-pro.md +159 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/agents/fastapi-pro.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/agents/python-pro.md +149 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/commands/python-scaffold.md +324 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/async-python-patterns/SKILL.md +735 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-anti-patterns/SKILL.md +349 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-background-jobs/SKILL.md +364 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-code-style/SKILL.md +360 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-configuration/SKILL.md +368 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-design-patterns/SKILL.md +433 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-error-handling/SKILL.md +359 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-observability/SKILL.md +400 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-packaging/SKILL.md +510 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-packaging/references/advanced-patterns.md +357 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-performance-optimization/SKILL.md +437 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-performance-optimization/references/advanced-patterns.md +419 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-project-structure/SKILL.md +252 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-resilience/SKILL.md +376 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-resource-management/SKILL.md +421 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-testing-patterns/SKILL.md +622 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-testing-patterns/references/advanced-patterns.md +411 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/python-type-safety/SKILL.md +432 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/uv-package-manager/SKILL.md +345 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/python-development/skills/uv-package-manager/references/advanced-patterns.md +473 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/quantitative-trading/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/quantitative-trading/agents/quant-analyst.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/quantitative-trading/agents/risk-manager.md +41 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/quantitative-trading/skills/backtesting-frameworks/SKILL.md +657 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/quantitative-trading/skills/risk-metrics-calculation/SKILL.md +551 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/agents/firmware-analyst.md +358 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/agents/malware-analyst.md +296 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/agents/reverse-engineer.md +219 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/skills/anti-reversing-techniques/SKILL.md +497 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/skills/anti-reversing-techniques/references/advanced-techniques.md +350 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/skills/binary-analysis-patterns/SKILL.md +438 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/skills/memory-forensics/SKILL.md +483 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/reverse-engineering/skills/protocol-reverse-engineering/SKILL.md +520 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-compliance/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-compliance/agents/security-auditor.md +156 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-compliance/commands/compliance-check.md +954 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/agents/security-auditor.md +156 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/agents/threat-modeling-expert.md +45 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/commands/security-dependencies.md +524 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/commands/security-hardening.md +653 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/commands/security-sast.md +528 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/skills/attack-tree-construction/SKILL.md +681 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/skills/sast-configuration/SKILL.md +204 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/skills/security-requirement-extraction/SKILL.md +673 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/skills/stride-analysis-patterns/SKILL.md +658 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/security-scanning/skills/threat-mitigation-mapping/SKILL.md +741 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-analysis-monitoring/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-analysis-monitoring/agents/seo-authority-builder.md +126 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-analysis-monitoring/agents/seo-cannibalization-detector.md +111 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-analysis-monitoring/agents/seo-content-refresher.md +106 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-content-creation/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-content-creation/agents/seo-content-auditor.md +64 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-content-creation/agents/seo-content-planner.md +93 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-content-creation/agents/seo-content-writer.md +82 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-technical-optimization/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-technical-optimization/agents/seo-keyword-strategist.md +80 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-technical-optimization/agents/seo-meta-optimizer.md +78 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-technical-optimization/agents/seo-snippet-hunter.md +102 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/seo-technical-optimization/agents/seo-structure-architect.md +94 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/shell-scripting/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/shell-scripting/agents/bash-pro.md +292 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/shell-scripting/agents/posix-shell-pro.md +290 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/shell-scripting/skills/bash-defensive-patterns/SKILL.md +533 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/shell-scripting/skills/bats-testing-patterns/SKILL.md +624 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/shell-scripting/skills/shellcheck-configuration/SKILL.md +450 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/README.md +221 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/agents/startup-analyst.md +340 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/commands/business-case.md +528 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/commands/financial-projections.md +374 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/commands/market-opportunity.md +248 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/skills/competitive-landscape/SKILL.md +514 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/skills/market-sizing-analysis/SKILL.md +430 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/skills/market-sizing-analysis/examples/saas-market-sizing.md +377 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/skills/market-sizing-analysis/references/data-sources.md +421 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/skills/startup-financial-modeling/SKILL.md +475 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/skills/startup-metrics-framework/SKILL.md +549 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/startup-business-analyst/skills/team-composition-analysis/SKILL.md +424 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/agents/c-pro.md +35 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/agents/cpp-pro.md +38 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/agents/golang-pro.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/agents/rust-pro.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/commands/rust-project.md +438 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/skills/go-concurrency-patterns/SKILL.md +651 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/skills/memory-safety-patterns/SKILL.md +600 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/systems-programming/skills/rust-async-patterns/SKILL.md +513 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/tdd-workflows/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/tdd-workflows/agents/code-reviewer.md +171 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/tdd-workflows/agents/tdd-orchestrator.md +183 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/tdd-workflows/commands/tdd-cycle.md +660 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/tdd-workflows/commands/tdd-green.md +104 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/tdd-workflows/commands/tdd-red.md +97 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/tdd-workflows/commands/tdd-refactor.md +187 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/team-collaboration/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/team-collaboration/agents/dx-optimizer.md +63 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/team-collaboration/commands/issue.md +671 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/team-collaboration/commands/standup-notes.md +834 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/README.md +126 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/agents/accessibility-expert.md +147 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/agents/design-system-architect.md +149 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/agents/ui-designer.md +125 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/commands/accessibility-audit.md +496 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/commands/create-component.md +474 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/commands/design-review.md +375 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/commands/design-system-setup.md +645 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/accessibility-compliance/SKILL.md +412 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/accessibility-compliance/references/aria-patterns.md +567 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/accessibility-compliance/references/mobile-accessibility.md +538 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/accessibility-compliance/references/wcag-guidelines.md +645 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/design-system-patterns/SKILL.md +329 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/design-system-patterns/references/component-architecture.md +617 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/design-system-patterns/references/design-tokens.md +420 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/design-system-patterns/references/theming-architecture.md +521 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/interaction-design/SKILL.md +320 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/interaction-design/references/animation-libraries.md +498 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/interaction-design/references/microinteraction-patterns.md +536 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/interaction-design/references/scroll-animations.md +416 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-android-design/SKILL.md +433 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-android-design/references/android-navigation.md +698 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-android-design/references/compose-components.md +796 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-android-design/references/material3-theming.md +604 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-ios-design/SKILL.md +259 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-ios-design/references/hig-patterns.md +529 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-ios-design/references/ios-navigation.md +556 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/mobile-ios-design/references/swiftui-components.md +575 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/react-native-design/SKILL.md +432 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/react-native-design/references/navigation-patterns.md +832 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/react-native-design/references/reanimated-patterns.md +775 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/react-native-design/references/styling-patterns.md +871 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/responsive-design/SKILL.md +516 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/responsive-design/references/breakpoint-strategies.md +591 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/responsive-design/references/container-queries.md +564 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/responsive-design/references/fluid-layouts.md +538 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/visual-design-foundations/SKILL.md +318 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/visual-design-foundations/references/color-systems.md +417 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/visual-design-foundations/references/spacing-iconography.md +425 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/visual-design-foundations/references/typography-systems.md +432 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/web-component-design/SKILL.md +271 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/web-component-design/references/accessibility-patterns.md +642 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/web-component-design/references/component-patterns.md +437 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/ui-design/skills/web-component-design/references/css-styling-approaches.md +590 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/unit-testing/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/unit-testing/agents/debugger.md +33 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/unit-testing/agents/test-automator.md +220 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/unit-testing/commands/test-generate.md +307 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/web-scripting/.claude-plugin/plugin.json +10 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/web-scripting/agents/php-pro.md +43 -0
- package/defaults/plugin-seed/marketplaces/claude-code-workflows/plugins/web-scripting/agents/ruby-pro.md +35 -0
- package/defaults/settings.json +79 -2
- package/package.json +1 -1
- package/shims/globals.ts +1 -1
- package/src/cli/handlers/plugins.ts +13 -0
- package/src/commands/login/CodexLogin.tsx +121 -13
- package/src/commands/login/login.tsx +122 -175
- package/src/components/AutoUpdaterWrapper.tsx +2 -15
- package/src/components/LogoV2/CondensedLogo.tsx +2 -2
- package/src/components/LogoV2/LogoV2.tsx +1 -1
- package/src/components/PromptInput/Notifications.tsx +3 -3
- package/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +3 -2
- package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx +2 -2
- package/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx +6 -5
- package/src/components/agents/new-agent-creation/wizard-steps/GenerationModelStep.tsx +42 -0
- package/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +3 -3
- package/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +2 -2
- package/src/components/messages/AssistantToolUseMessage.tsx +75 -64
- package/src/hooks/notifs/useNpmDeprecationNotification.tsx +2 -2
- package/src/main.tsx +4 -0
- package/src/query.ts +78 -48
- package/src/services/api/errors.ts +24 -1
- package/src/services/api/officialClaudeBridge.ts +480 -0
- package/src/services/api/openaiShim.ts +11 -1
- package/src/state/AppStateStore.ts +12 -0
- package/src/tools/AgentTool/AgentTool.tsx +26 -0
- package/src/tools/AgentTool/officialClaudeBridge.ts +5 -0
- package/src/tools/AgentTool/runAgent.ts +33 -1
- package/src/utils/auth.ts +20 -3
- package/src/utils/effort.ts +17 -3
- package/src/utils/logoV2Utils.ts +23 -8
- package/src/utils/model/modelOptions.ts +14 -119
- package/src/utils/model/platformProfiles.ts +3 -1
- package/src/utils/model/thirdPartyProviders.ts +1 -0
- package/src/utils/plugins/pluginDirectories.ts +15 -3
- package/mumucc-0.4.3.tgz +0 -0
|
@@ -3,6 +3,9 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
3
3
|
import type { ToolUseBlockParam } from '@anthropic-ai/sdk/resources/index.mjs';
|
|
4
4
|
import React, { useMemo } from 'react';
|
|
5
5
|
import { useTerminalSize } from 'src/hooks/useTerminalSize.js';
|
|
6
|
+
import { AGENT_TOOL_NAME } from 'src/tools/AgentTool/constants.js';
|
|
7
|
+
import { AGENT_COLOR_TO_THEME_COLOR } from 'src/tools/AgentTool/agentColorManager.js';
|
|
8
|
+
import { renderModelName } from 'src/utils/model/model.js';
|
|
6
9
|
import type { ThemeName } from 'src/utils/theme.js';
|
|
7
10
|
import type { Command } from '../../commands.js';
|
|
8
11
|
import { BLACK_CIRCLE } from '../../constants/figures.js';
|
|
@@ -34,7 +37,7 @@ type Props = {
|
|
|
34
37
|
isTranscriptMode?: boolean;
|
|
35
38
|
};
|
|
36
39
|
export function AssistantToolUseMessage(t0) {
|
|
37
|
-
const $ = _c(
|
|
40
|
+
const $ = _c(83);
|
|
38
41
|
const {
|
|
39
42
|
param,
|
|
40
43
|
addMargin,
|
|
@@ -53,6 +56,7 @@ export function AssistantToolUseMessage(t0) {
|
|
|
53
56
|
const [theme] = useTheme();
|
|
54
57
|
const bg = useSelectedMessageBg();
|
|
55
58
|
const pendingWorkerRequest = useAppStateMaybeOutsideOfProvider(_temp);
|
|
59
|
+
const agentInvocation = useAppStateMaybeOutsideOfProvider(state => state?.agentToolInvocations?.[param.id]);
|
|
56
60
|
const isClassifierCheckingRaw = useIsClassifierChecking(param.id);
|
|
57
61
|
const permissionMode = useAppStateMaybeOutsideOfProvider(_temp2);
|
|
58
62
|
const hasStrippedRules = useAppStateMaybeOutsideOfProvider(_temp3);
|
|
@@ -99,6 +103,11 @@ export function AssistantToolUseMessage(t0) {
|
|
|
99
103
|
userFacingToolNameBackgroundColor,
|
|
100
104
|
isTransparentWrapper
|
|
101
105
|
} = parsed;
|
|
106
|
+
const isAgentTool = tool_0.name === AGENT_TOOL_NAME;
|
|
107
|
+
const resolvedAgentType = agentInvocation?.agentType;
|
|
108
|
+
const resolvedAgentModel = agentInvocation?.model;
|
|
109
|
+
const displayToolName = isAgentTool && resolvedAgentType && resolvedAgentType !== "general-purpose" && resolvedAgentType !== "worker" ? resolvedAgentType : userFacingToolName;
|
|
110
|
+
const displayToolNameBackgroundColor = isAgentTool && agentInvocation?.color ? AGENT_COLOR_TO_THEME_COLOR[agentInvocation.color] : userFacingToolNameBackgroundColor;
|
|
102
111
|
let t2;
|
|
103
112
|
if ($[4] !== lookups.resolvedToolUseIDs || $[5] !== param.id) {
|
|
104
113
|
t2 = lookups.resolvedToolUseIDs.has(param.id);
|
|
@@ -156,7 +165,7 @@ export function AssistantToolUseMessage(t0) {
|
|
|
156
165
|
}
|
|
157
166
|
return t5;
|
|
158
167
|
}
|
|
159
|
-
if (
|
|
168
|
+
if (displayToolName === "") {
|
|
160
169
|
return null;
|
|
161
170
|
}
|
|
162
171
|
let t4;
|
|
@@ -181,7 +190,7 @@ export function AssistantToolUseMessage(t0) {
|
|
|
181
190
|
return null;
|
|
182
191
|
}
|
|
183
192
|
const t5 = addMargin ? 1 : 0;
|
|
184
|
-
const t6 = stringWidth(
|
|
193
|
+
const t6 = stringWidth(displayToolName) + (shouldShowDot ? 2 : 0);
|
|
185
194
|
let t7;
|
|
186
195
|
if ($[31] !== isQueued || $[32] !== isResolved || $[33] !== lookups.erroredToolUseIDs || $[34] !== param.id || $[35] !== shouldAnimate || $[36] !== shouldShowDot) {
|
|
187
196
|
t7 = shouldShowDot && (isQueued ? <Box minWidth={2}><Text dimColor={isQueued}>{BLACK_CIRCLE}</Text></Box> : <ToolUseLoader shouldAnimate={shouldAnimate} isUnresolved={!isResolved} isError={lookups.erroredToolUseIDs.has(param.id)} />);
|
|
@@ -195,13 +204,13 @@ export function AssistantToolUseMessage(t0) {
|
|
|
195
204
|
} else {
|
|
196
205
|
t7 = $[37];
|
|
197
206
|
}
|
|
198
|
-
const t8 =
|
|
207
|
+
const t8 = displayToolNameBackgroundColor ? "inverseText" : undefined;
|
|
199
208
|
let t9;
|
|
200
|
-
if ($[38] !==
|
|
201
|
-
t9 = <Box flexShrink={0}><Text bold={true} wrap="truncate-end" backgroundColor={
|
|
202
|
-
$[38] =
|
|
203
|
-
$[39] =
|
|
204
|
-
$[40] =
|
|
209
|
+
if ($[38] !== displayToolName || $[39] !== displayToolNameBackgroundColor || $[40] !== t8) {
|
|
210
|
+
t9 = <Box flexShrink={0}><Text bold={true} wrap="truncate-end" backgroundColor={displayToolNameBackgroundColor} color={t8}>{displayToolName}</Text></Box>;
|
|
211
|
+
$[38] = displayToolName;
|
|
212
|
+
$[39] = displayToolNameBackgroundColor;
|
|
213
|
+
$[40] = t8;
|
|
205
214
|
$[41] = t9;
|
|
206
215
|
} else {
|
|
207
216
|
t9 = $[41];
|
|
@@ -215,92 +224,94 @@ export function AssistantToolUseMessage(t0) {
|
|
|
215
224
|
t10 = $[43];
|
|
216
225
|
}
|
|
217
226
|
let t11;
|
|
218
|
-
if ($[44] !== input_0.data || $[45] !== input_0.success || $[46] !== tool_0) {
|
|
219
|
-
t11 = input_0.success && tool_0.renderToolUseTag && tool_0.renderToolUseTag(input_0.data);
|
|
227
|
+
if ($[44] !== input_0.data || $[45] !== input_0.success || $[46] !== isAgentTool || $[47] !== resolvedAgentModel || $[48] !== tool_0) {
|
|
228
|
+
t11 = isAgentTool ? resolvedAgentModel ? <Box flexWrap="nowrap" marginLeft={1}><Text dimColor={true}>{renderModelName(resolvedAgentModel)}</Text></Box> : null : input_0.success && tool_0.renderToolUseTag && tool_0.renderToolUseTag(input_0.data);
|
|
220
229
|
$[44] = input_0.data;
|
|
221
230
|
$[45] = input_0.success;
|
|
222
|
-
$[46] =
|
|
223
|
-
$[47] =
|
|
231
|
+
$[46] = isAgentTool;
|
|
232
|
+
$[47] = resolvedAgentModel;
|
|
233
|
+
$[48] = tool_0;
|
|
234
|
+
$[49] = t11;
|
|
224
235
|
} else {
|
|
225
|
-
t11 = $[
|
|
236
|
+
t11 = $[49];
|
|
226
237
|
}
|
|
227
238
|
let t12;
|
|
228
|
-
if ($[
|
|
229
|
-
t12 = <Box flexDirection="row" flexWrap="nowrap" minWidth={t6}>{t7}{t9}{t10}
|
|
230
|
-
$[
|
|
231
|
-
$[
|
|
232
|
-
$[
|
|
233
|
-
$[
|
|
234
|
-
$[
|
|
235
|
-
$[53] = t12;
|
|
239
|
+
if ($[50] !== t10 || $[51] !== t6 || $[52] !== t7 || $[53] !== t9) {
|
|
240
|
+
t12 = <Box flexDirection="row" flexWrap="nowrap" minWidth={t6}>{t7}{t9}{t10}</Box>;
|
|
241
|
+
$[50] = t10;
|
|
242
|
+
$[51] = t6;
|
|
243
|
+
$[52] = t7;
|
|
244
|
+
$[53] = t9;
|
|
245
|
+
$[54] = t12;
|
|
236
246
|
} else {
|
|
237
|
-
t12 = $[
|
|
247
|
+
t12 = $[54];
|
|
238
248
|
}
|
|
239
249
|
let t13;
|
|
240
|
-
if ($[
|
|
250
|
+
if ($[55] !== inProgressToolCallCount || $[56] !== isAutoClassifier || $[57] !== isClassifierChecking || $[58] !== isQueued || $[59] !== isResolved || $[60] !== isTranscriptMode || $[61] !== isWaitingForPermission || $[62] !== lookups || $[63] !== param.id || $[64] !== progressMessagesForMessage || $[65] !== terminalSize || $[66] !== tool_0 || $[67] !== tools || $[68] !== verbose) {
|
|
241
251
|
t13 = !isResolved && !isQueued && (isClassifierChecking ? <MessageResponse height={1}><Text dimColor={true}>{isAutoClassifier ? "Auto classifier checking\u2026" : "Bash classifier checking\u2026"}</Text></MessageResponse> : isWaitingForPermission ? <MessageResponse height={1}><Text dimColor={true}>Waiting for permission…</Text></MessageResponse> : renderToolUseProgressMessage(tool_0, tools, lookups, param.id, progressMessagesForMessage, {
|
|
242
252
|
verbose,
|
|
243
253
|
inProgressToolCallCount,
|
|
244
254
|
isTranscriptMode
|
|
245
255
|
}, terminalSize));
|
|
246
|
-
$[
|
|
247
|
-
$[
|
|
248
|
-
$[
|
|
249
|
-
$[
|
|
250
|
-
$[
|
|
251
|
-
$[
|
|
252
|
-
$[
|
|
253
|
-
$[
|
|
254
|
-
$[
|
|
255
|
-
$[
|
|
256
|
-
$[
|
|
257
|
-
$[
|
|
258
|
-
$[
|
|
259
|
-
$[
|
|
260
|
-
$[
|
|
256
|
+
$[55] = inProgressToolCallCount;
|
|
257
|
+
$[56] = isAutoClassifier;
|
|
258
|
+
$[57] = isClassifierChecking;
|
|
259
|
+
$[58] = isQueued;
|
|
260
|
+
$[59] = isResolved;
|
|
261
|
+
$[60] = isTranscriptMode;
|
|
262
|
+
$[61] = isWaitingForPermission;
|
|
263
|
+
$[62] = lookups;
|
|
264
|
+
$[63] = param.id;
|
|
265
|
+
$[64] = progressMessagesForMessage;
|
|
266
|
+
$[65] = terminalSize;
|
|
267
|
+
$[66] = tool_0;
|
|
268
|
+
$[67] = tools;
|
|
269
|
+
$[68] = verbose;
|
|
270
|
+
$[69] = t13;
|
|
261
271
|
} else {
|
|
262
|
-
t13 = $[
|
|
272
|
+
t13 = $[69];
|
|
263
273
|
}
|
|
264
274
|
let t14;
|
|
265
|
-
if ($[
|
|
275
|
+
if ($[70] !== isQueued || $[71] !== isResolved || $[72] !== tool_0) {
|
|
266
276
|
t14 = !isResolved && isQueued && renderToolUseQueuedMessage(tool_0);
|
|
267
|
-
$[
|
|
268
|
-
$[
|
|
269
|
-
$[
|
|
270
|
-
$[
|
|
277
|
+
$[70] = isQueued;
|
|
278
|
+
$[71] = isResolved;
|
|
279
|
+
$[72] = tool_0;
|
|
280
|
+
$[73] = t14;
|
|
271
281
|
} else {
|
|
272
|
-
t14 = $[
|
|
282
|
+
t14 = $[73];
|
|
273
283
|
}
|
|
274
284
|
let t15;
|
|
275
|
-
if ($[
|
|
276
|
-
t15 = <Box flexDirection="column">{t12}{t13}{t14}</Box>;
|
|
277
|
-
$[
|
|
278
|
-
$[
|
|
279
|
-
$[
|
|
280
|
-
$[
|
|
285
|
+
if ($[74] !== t12 || $[75] !== t13 || $[76] !== t14) {
|
|
286
|
+
t15 = <Box flexDirection="column" flexGrow={1}>{t12}{t13}{t14}</Box>;
|
|
287
|
+
$[74] = t12;
|
|
288
|
+
$[75] = t13;
|
|
289
|
+
$[76] = t14;
|
|
290
|
+
$[77] = t15;
|
|
281
291
|
} else {
|
|
282
|
-
t15 = $[
|
|
292
|
+
t15 = $[77];
|
|
283
293
|
}
|
|
284
294
|
let t16;
|
|
285
|
-
if ($[
|
|
286
|
-
t16 = <Box flexDirection="row" justifyContent="space-between" marginTop={t5} width="100%" backgroundColor={bg}>{t15}</Box>;
|
|
287
|
-
$[
|
|
288
|
-
$[
|
|
289
|
-
$[
|
|
290
|
-
$[
|
|
295
|
+
if ($[78] !== bg || $[79] !== t11 || $[80] !== t15 || $[81] !== t5) {
|
|
296
|
+
t16 = <Box flexDirection="row" justifyContent="space-between" marginTop={t5} width="100%" backgroundColor={bg}>{t15}{t11 ? <Box flexShrink={0} marginLeft={1}>{t11}</Box> : null}</Box>;
|
|
297
|
+
$[78] = bg;
|
|
298
|
+
$[79] = t11;
|
|
299
|
+
$[80] = t15;
|
|
300
|
+
$[81] = t5;
|
|
301
|
+
$[82] = t16;
|
|
291
302
|
} else {
|
|
292
|
-
t16 = $[
|
|
303
|
+
t16 = $[82];
|
|
293
304
|
}
|
|
294
305
|
return t16;
|
|
295
306
|
}
|
|
296
307
|
function _temp3(state_1) {
|
|
297
|
-
return !!state_1
|
|
308
|
+
return !!state_1?.toolPermissionContext?.strippedDangerousRules;
|
|
298
309
|
}
|
|
299
310
|
function _temp2(state_0) {
|
|
300
|
-
return state_0
|
|
311
|
+
return state_0?.toolPermissionContext?.mode;
|
|
301
312
|
}
|
|
302
313
|
function _temp(state) {
|
|
303
|
-
return state
|
|
314
|
+
return state?.pendingWorkerRequest;
|
|
304
315
|
}
|
|
305
316
|
function renderToolUseMessage(tool: Tool, input: unknown, {
|
|
306
317
|
theme,
|
|
@@ -366,4 +377,4 @@ function renderToolUseQueuedMessage(tool: Tool): React.ReactNode {
|
|
|
366
377
|
return null;
|
|
367
378
|
}
|
|
368
379
|
}
|
|
369
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sVXNlQmxvY2tQYXJhbSIsIlJlYWN0IiwidXNlTWVtbyIsInVzZVRlcm1pbmFsU2l6ZSIsIlRoZW1lTmFtZSIsIkNvbW1hbmQiLCJCTEFDS19DSVJDTEUiLCJzdHJpbmdXaWR0aCIsIkJveCIsIlRleHQiLCJ1c2VUaGVtZSIsInVzZUFwcFN0YXRlTWF5YmVPdXRzaWRlT2ZQcm92aWRlciIsImZpbmRUb29sQnlOYW1lIiwiVG9vbCIsIlRvb2xQcm9ncmVzc0RhdGEiLCJUb29scyIsIlByb2dyZXNzTWVzc2FnZSIsInVzZUlzQ2xhc3NpZmllckNoZWNraW5nIiwibG9nRXJyb3IiLCJidWlsZE1lc3NhZ2VMb29rdXBzIiwiTWVzc2FnZVJlc3BvbnNlIiwidXNlU2VsZWN0ZWRNZXNzYWdlQmciLCJTZW50cnlFcnJvckJvdW5kYXJ5IiwiVG9vbFVzZUxvYWRlciIsIkhvb2tQcm9ncmVzc01lc3NhZ2UiLCJQcm9wcyIsInBhcmFtIiwiYWRkTWFyZ2luIiwidG9vbHMiLCJjb21tYW5kcyIsInZlcmJvc2UiLCJpblByb2dyZXNzVG9vbFVzZUlEcyIsIlNldCIsInByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlIiwic2hvdWxkQW5pbWF0ZSIsInNob3VsZFNob3dEb3QiLCJpblByb2dyZXNzVG9vbENhbGxDb3VudCIsImxvb2t1cHMiLCJSZXR1cm5UeXBlIiwiaXNUcmFuc2NyaXB0TW9kZSIsIkFzc2lzdGFudFRvb2xVc2VNZXNzYWdlIiwidDAiLCIkIiwiX2MiLCJ0ZXJtaW5hbFNpemUiLCJ0aGVtZSIsImJnIiwicGVuZGluZ1dvcmtlclJlcXVlc3QiLCJfdGVtcCIsImlzQ2xhc3NpZmllckNoZWNraW5nUmF3IiwiaWQiLCJwZXJtaXNzaW9uTW9kZSIsIl90ZW1wMiIsImhhc1N0cmlwcGVkUnVsZXMiLCJfdGVtcDMiLCJpc0F1dG9DbGFzc2lmaWVyIiwiaXNDbGFzc2lmaWVyQ2hlY2tpbmciLCJ0MSIsImlucHV0IiwibmFtZSIsImJiMCIsInRvb2wiLCJpbnB1dFNjaGVtYSIsInNhZmVQYXJzZSIsImRhdGEiLCJzdWNjZXNzIiwidW5kZWZpbmVkIiwidXNlckZhY2luZ1Rvb2xOYW1lIiwidXNlckZhY2luZ05hbWUiLCJ1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3IiLCJ1c2VyRmFjaW5nTmFtZUJhY2tncm91bmRDb2xvciIsImlzVHJhbnNwYXJlbnRXcmFwcGVyIiwicGFyc2VkIiwiRXJyb3IiLCJ0b29sXzAiLCJpbnB1dF8wIiwidDIiLCJyZXNvbHZlZFRvb2xVc2VJRHMiLCJoYXMiLCJpc1Jlc29sdmVkIiwidDMiLCJpc1F1ZXVlZCIsImlzV2FpdGluZ0ZvclBlcm1pc3Npb24iLCJ0b29sVXNlSWQiLCJ0NCIsInJlbmRlclRvb2xVc2VQcm9ncmVzc01lc3NhZ2UiLCJ0NSIsInJlbmRlclRvb2xVc2VNZXNzYWdlIiwicmVuZGVyZWRUb29sVXNlTWVzc2FnZSIsInQ2IiwidDciLCJlcnJvcmVkVG9vbFVzZUlEcyIsInQ4IiwidDkiLCJ0MTAiLCJ0MTEiLCJyZW5kZXJUb29sVXNlVGFnIiwidDEyIiwidDEzIiwidDE0IiwicmVuZGVyVG9vbFVzZVF1ZXVlZE1lc3NhZ2UiLCJ0MTUiLCJ0MTYiLCJzdGF0ZV8xIiwic3RhdGUiLCJ0b29sUGVybWlzc2lvbkNvbnRleHQiLCJzdHJpcHBlZERhbmdlcm91c1J1bGVzIiwic3RhdGVfMCIsIm1vZGUiLCJSZWFjdE5vZGUiLCJlcnJvciIsInRvb2xVc2VJRCIsImNvbHVtbnMiLCJyb3dzIiwidG9vbFByb2dyZXNzTWVzc2FnZXMiLCJmaWx0ZXIiLCJtc2ciLCJ0eXBlIiwidG9vbE1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiQXNzaXN0YW50VG9vbFVzZU1lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVG9vbFVzZUJsb2NrUGFyYW0gfSBmcm9tICdAYW50aHJvcGljLWFpL3Nkay9yZXNvdXJjZXMvaW5kZXgubWpzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRlcm1pbmFsU2l6ZSB9IGZyb20gJ3NyYy9ob29rcy91c2VUZXJtaW5hbFNpemUuanMnXG5pbXBvcnQgdHlwZSB7IFRoZW1lTmFtZSB9IGZyb20gJ3NyYy91dGlscy90aGVtZS5qcydcbmltcG9ydCB0eXBlIHsgQ29tbWFuZCB9IGZyb20gJy4uLy4uL2NvbW1hbmRzLmpzJ1xuaW1wb3J0IHsgQkxBQ0tfQ0lSQ0xFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2ZpZ3VyZXMuanMnXG5pbXBvcnQgeyBzdHJpbmdXaWR0aCB9IGZyb20gJy4uLy4uL2luay9zdHJpbmdXaWR0aC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCwgdXNlVGhlbWUgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB7XG4gIGZpbmRUb29sQnlOYW1lLFxuICB0eXBlIFRvb2wsXG4gIHR5cGUgVG9vbFByb2dyZXNzRGF0YSxcbiAgdHlwZSBUb29scyxcbn0gZnJvbSAnLi4vLi4vVG9vbC5qcydcbmltcG9ydCB0eXBlIHsgUHJvZ3Jlc3NNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvbWVzc2FnZS5qcydcbmltcG9ydCB7IHVzZUlzQ2xhc3NpZmllckNoZWNraW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NpZmllckFwcHJvdmFsc0hvb2suanMnXG5pbXBvcnQgeyBsb2dFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcydcbmltcG9ydCB0eXBlIHsgYnVpbGRNZXNzYWdlTG9va3VwcyB9IGZyb20gJy4uLy4uL3V0aWxzL21lc3NhZ2VzLmpzJ1xuaW1wb3J0IHsgTWVzc2FnZVJlc3BvbnNlIH0gZnJvbSAnLi4vTWVzc2FnZVJlc3BvbnNlLmpzJ1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRNZXNzYWdlQmcgfSBmcm9tICcuLi9tZXNzYWdlQWN0aW9ucy5qcydcbmltcG9ydCB7IFNlbnRyeUVycm9yQm91bmRhcnkgfSBmcm9tICcuLi9TZW50cnlFcnJvckJvdW5kYXJ5LmpzJ1xuaW1wb3J0IHsgVG9vbFVzZUxvYWRlciB9IGZyb20gJy4uL1Rvb2xVc2VMb2FkZXIuanMnXG5pbXBvcnQgeyBIb29rUHJvZ3Jlc3NNZXNzYWdlIH0gZnJvbSAnLi9Ib29rUHJvZ3Jlc3NNZXNzYWdlLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBwYXJhbTogVG9vbFVzZUJsb2NrUGFyYW1cbiAgYWRkTWFyZ2luOiBib29sZWFuXG4gIHRvb2xzOiBUb29sc1xuICBjb21tYW5kczogQ29tbWFuZFtdXG4gIHZlcmJvc2U6IGJvb2xlYW5cbiAgaW5Qcm9ncmVzc1Rvb2xVc2VJRHM6IFNldDxzdHJpbmc+XG4gIHByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlOiBQcm9ncmVzc01lc3NhZ2VbXVxuICBzaG91bGRBbmltYXRlOiBib29sZWFuXG4gIHNob3VsZFNob3dEb3Q6IGJvb2xlYW5cbiAgaW5Qcm9ncmVzc1Rvb2xDYWxsQ291bnQ/OiBudW1iZXJcbiAgbG9va3VwczogUmV0dXJuVHlwZTx0eXBlb2YgYnVpbGRNZXNzYWdlTG9va3Vwcz5cbiAgaXNUcmFuc2NyaXB0TW9kZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFzc2lzdGFudFRvb2xVc2VNZXNzYWdlKHtcbiAgcGFyYW0sXG4gIGFkZE1hcmdpbixcbiAgdG9vbHMsXG4gIGNvbW1hbmRzLFxuICB2ZXJib3NlLFxuICBpblByb2dyZXNzVG9vbFVzZUlEcyxcbiAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2UsXG4gIHNob3VsZEFuaW1hdGUsXG4gIHNob3VsZFNob3dEb3QsXG4gIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50LFxuICBsb29rdXBzLFxuICBpc1RyYW5zY3JpcHRNb2RlLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB0ZXJtaW5hbFNpemUgPSB1c2VUZXJtaW5hbFNpemUoKVxuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCBiZyA9IHVzZVNlbGVjdGVkTWVzc2FnZUJnKClcbiAgY29uc3QgcGVuZGluZ1dvcmtlclJlcXVlc3QgPSB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIoXG4gICAgc3RhdGUgPT4gc3RhdGUucGVuZGluZ1dvcmtlclJlcXVlc3QsXG4gIClcbiAgY29uc3QgaXNDbGFzc2lmaWVyQ2hlY2tpbmdSYXcgPSB1c2VJc0NsYXNzaWZpZXJDaGVja2luZyhwYXJhbS5pZClcbiAgY29uc3QgcGVybWlzc2lvbk1vZGUgPSB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIoXG4gICAgc3RhdGUgPT4gc3RhdGUudG9vbFBlcm1pc3Npb25Db250ZXh0Lm1vZGUsXG4gIClcbiAgLy8gc3RyaXBwZWREYW5nZXJvdXNSdWxlcyBpcyBzZXQgYnkgc3RyaXBEYW5nZXJvdXNQZXJtaXNzaW9uc0ZvckF1dG9Nb2RlXG4gIC8vIChldmVuIHRvIHt9KSB3aGVuZXZlciBhdXRvIGlzIGFjdGl2ZSwgYW5kIGNsZWFyZWQgYnkgcmVzdG9yZURhbmdlcm91c1Blcm1pc3Npb25zXG4gIC8vIG9uIGRlYWN0aXZhdGlvbiDigJQgYSByZWxpYWJsZSBwcm94eSBmb3IgaXNBdXRvTW9kZUFjdGl2ZSgpIGR1cmluZyBwbGFuLlxuICAvLyBwcmVQbGFuTW9kZSB3b3VsZCBiZSBzdGFsZSBhZnRlciB0cmFuc2l0aW9uUGxhbkF1dG9Nb2RlIGRlYWN0aXZhdGVzIG1pZC1wbGFuLlxuICBjb25zdCBoYXNTdHJpcHBlZFJ1bGVzID0gdXNlQXBwU3RhdGVNYXliZU91dHNpZGVPZlByb3ZpZGVyKFxuICAgIHN0YXRlID0+ICEhc3RhdGUudG9vbFBlcm1pc3Npb25Db250ZXh0LnN0cmlwcGVkRGFuZ2Vyb3VzUnVsZXMsXG4gIClcbiAgY29uc3QgaXNBdXRvQ2xhc3NpZmllciA9XG4gICAgcGVybWlzc2lvbk1vZGUgPT09ICdhdXRvJyB8fCAocGVybWlzc2lvbk1vZGUgPT09ICdwbGFuJyAmJiBoYXNTdHJpcHBlZFJ1bGVzKVxuICBjb25zdCBpc0NsYXNzaWZpZXJDaGVja2luZyA9XG4gICAgXCJleHRlcm5hbFwiID09PSAnYW50JyAmJlxuICAgIGlzQ2xhc3NpZmllckNoZWNraW5nUmF3ICYmXG4gICAgcGVybWlzc2lvbk1vZGUgIT09ICdhdXRvJ1xuXG4gIC8vIE1lbW9pemUgb24gcGFyYW0gaWRlbnRpdHkgKHN0YWJsZSDigJQgZnJvbSB0aGUgcGVyc2lzdGVkIG1lc3NhZ2Ugb2JqZWN0KS5cbiAgLy8gWm9kIHNhZmVQYXJzZSBhbGxvY2F0ZXMgcGVyIGNhbGwsIGFuZCBzb21lIHRvb2xzJyB1c2VyRmFjaW5nTmFtZSgpXG4gIC8vIChCYXNoVG9vbCDihpIgc2hvdWxkVXNlU2FuZGJveCDihpIgc2hlbGwtcXVvdGUgcGFyc2UpIGFyZSBleHBlbnNpdmUuIFdpdGhvdXRcbiAgLy8gdGhpcywgfjUwIGJhc2ggbWVzc2FnZXMgw5cgc2hlbGwtcXVvdGUtcGVyLXJlbmRlciBwdXNoZWQgdHJhbnNpdGlvblxuICAvLyByZW5kZXIgcGFzdCB0aGUgc2hpbW1lciB0aWNrIOKGkiBhYm9ydCDihpIgaW5maW5pdGUgcmV0cnkgKCMyMTYwNSkuXG4gIGNvbnN0IHBhcnNlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghdG9vbHMpIHJldHVybiBudWxsXG4gICAgY29uc3QgdG9vbCA9IGZpbmRUb29sQnlOYW1lKHRvb2xzLCBwYXJhbS5uYW1lKVxuICAgIGlmICghdG9vbCkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBpbnB1dCA9IHRvb2wuaW5wdXRTY2hlbWEuc2FmZVBhcnNlKHBhcmFtLmlucHV0KVxuICAgIGNvbnN0IGRhdGEgPSBpbnB1dC5zdWNjZXNzID8gaW5wdXQuZGF0YSA6IHVuZGVmaW5lZFxuICAgIHJldHVybiB7XG4gICAgICB0b29sLFxuICAgICAgaW5wdXQsXG4gICAgICB1c2VyRmFjaW5nVG9vbE5hbWU6IHRvb2wudXNlckZhY2luZ05hbWUoZGF0YSksXG4gICAgICB1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3I6XG4gICAgICAgIHRvb2wudXNlckZhY2luZ05hbWVCYWNrZ3JvdW5kQ29sb3I/LihkYXRhKSxcbiAgICAgIGlzVHJhbnNwYXJlbnRXcmFwcGVyOiB0b29sLmlzVHJhbnNwYXJlbnRXcmFwcGVyPy4oKSA/PyBmYWxzZSxcbiAgICB9XG4gIH0sIFt0b29scywgcGFyYW1dKVxuXG4gIGlmICghcGFyc2VkKSB7XG4gICAgLy8gR3VhcmQgYWdhaW5zdCB1bmRlZmluZWQgdG9vbHMgKHJlcXVpcmVkIHByb3ApIG9yIHVua25vd24gdG9vbCBuYW1lXG4gICAgbG9nRXJyb3IoXG4gICAgICBuZXcgRXJyb3IoXG4gICAgICAgIHRvb2xzXG4gICAgICAgICAgPyBgVG9vbCAke3BhcmFtLm5hbWV9IG5vdCBmb3VuZGBcbiAgICAgICAgICA6IGBUb29scyBhcnJheSBpcyB1bmRlZmluZWQgZm9yIHRvb2wgJHtwYXJhbS5uYW1lfWAsXG4gICAgICApLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3Qge1xuICAgIHRvb2wsXG4gICAgaW5wdXQsXG4gICAgdXNlckZhY2luZ1Rvb2xOYW1lLFxuICAgIHVzZXJGYWNpbmdUb29sTmFtZUJhY2tncm91bmRDb2xvcixcbiAgICBpc1RyYW5zcGFyZW50V3JhcHBlcixcbiAgfSA9IHBhcnNlZFxuXG4gIGNvbnN0IGlzUmVzb2x2ZWQgPSBsb29rdXBzLnJlc29sdmVkVG9vbFVzZUlEcy5oYXMocGFyYW0uaWQpXG4gIGNvbnN0IGlzUXVldWVkID0gIWluUHJvZ3Jlc3NUb29sVXNlSURzLmhhcyhwYXJhbS5pZCkgJiYgIWlzUmVzb2x2ZWRcbiAgY29uc3QgaXNXYWl0aW5nRm9yUGVybWlzc2lvbiA9IHBlbmRpbmdXb3JrZXJSZXF1ZXN0Py50b29sVXNlSWQgPT09IHBhcmFtLmlkXG5cbiAgaWYgKGlzVHJhbnNwYXJlbnRXcmFwcGVyKSB7XG4gICAgaWYgKGlzUXVldWVkIHx8IGlzUmVzb2x2ZWQpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIHdpZHRoPVwiMTAwJVwiIGJhY2tncm91bmRDb2xvcj17Ymd9PlxuICAgICAgICB7cmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZShcbiAgICAgICAgICB0b29sLFxuICAgICAgICAgIHRvb2xzLFxuICAgICAgICAgIGxvb2t1cHMsXG4gICAgICAgICAgcGFyYW0uaWQsXG4gICAgICAgICAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2UsXG4gICAgICAgICAgeyB2ZXJib3NlLCBpblByb2dyZXNzVG9vbENhbGxDb3VudCwgaXNUcmFuc2NyaXB0TW9kZSB9LFxuICAgICAgICAgIHRlcm1pbmFsU2l6ZSxcbiAgICAgICAgKX1cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIGlmICh1c2VyRmFjaW5nVG9vbE5hbWUgPT09ICcnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVkVG9vbFVzZU1lc3NhZ2UgPSBpbnB1dC5zdWNjZXNzXG4gICAgPyByZW5kZXJUb29sVXNlTWVzc2FnZSh0b29sLCBpbnB1dC5kYXRhLCB7IHRoZW1lLCB2ZXJib3NlLCBjb21tYW5kcyB9KVxuICAgIDogbnVsbFxuICBpZiAocmVuZGVyZWRUb29sVXNlTWVzc2FnZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3hcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJyb3dcIlxuICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgIG1hcmdpblRvcD17YWRkTWFyZ2luID8gMSA6IDB9XG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgYmFja2dyb3VuZENvbG9yPXtiZ31cbiAgICA+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGZsZXhXcmFwPVwibm93cmFwXCJcbiAgICAgICAgICBtaW5XaWR0aD17c3RyaW5nV2lkdGgodXNlckZhY2luZ1Rvb2xOYW1lKSArIChzaG91bGRTaG93RG90ID8gMiA6IDApfVxuICAgICAgICA+XG4gICAgICAgICAge3Nob3VsZFNob3dEb3QgJiZcbiAgICAgICAgICAgIChpc1F1ZXVlZCA/IChcbiAgICAgICAgICAgICAgPEJveCBtaW5XaWR0aD17Mn0+XG4gICAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I9e2lzUXVldWVkfT57QkxBQ0tfQ0lSQ0xFfTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAvLyBXQVJOSU5HOiBUaGUgY29kZSBoZXJlIGFuZCBpbiBUb29sVXNlTG9hZGVyIGlzIHBhcnRpY3VsYXJseVxuICAgICAgICAgICAgICAvLyBzZW5zaXRpdmUgdG8gd2hhdCAqc2hvdWxkKiBqdXN0IGJlIHRyaXZpYWwgcmVmYWN0b3JpbmdzLiBTZWVcbiAgICAgICAgICAgICAgLy8gdGhlIGNvbW1lbnQgaW4gVG9vbFVzZUxvYWRlciBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICAgICAgICA8VG9vbFVzZUxvYWRlclxuICAgICAgICAgICAgICAgIHNob3VsZEFuaW1hdGU9e3Nob3VsZEFuaW1hdGV9XG4gICAgICAgICAgICAgICAgaXNVbnJlc29sdmVkPXshaXNSZXNvbHZlZH1cbiAgICAgICAgICAgICAgICBpc0Vycm9yPXtsb29rdXBzLmVycm9yZWRUb29sVXNlSURzLmhhcyhwYXJhbS5pZCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8Qm94IGZsZXhTaHJpbms9ezB9PlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgYm9sZFxuICAgICAgICAgICAgICB3cmFwPVwidHJ1bmNhdGUtZW5kXCJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXt1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3J9XG4gICAgICAgICAgICAgIGNvbG9yPXtcbiAgICAgICAgICAgICAgICB1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3IgPyAnaW52ZXJzZVRleHQnIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3VzZXJGYWNpbmdUb29sTmFtZX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7cmVuZGVyZWRUb29sVXNlTWVzc2FnZSAhPT0gJycgJiYgKFxuICAgICAgICAgICAgPEJveCBmbGV4V3JhcD1cIm5vd3JhcFwiPlxuICAgICAgICAgICAgICA8VGV4dD4oe3JlbmRlcmVkVG9vbFVzZU1lc3NhZ2V9KTwvVGV4dD5cbiAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICl9XG4gICAgICAgICAgey8qIFJlbmRlciB0b29sLXNwZWNpZmljIHRhZ3MgKHRpbWVvdXQsIG1vZGVsLCByZXN1bWUgSUQsIGV0Yy4pICovfVxuICAgICAgICAgIHtpbnB1dC5zdWNjZXNzICYmXG4gICAgICAgICAgICB0b29sLnJlbmRlclRvb2xVc2VUYWcgJiZcbiAgICAgICAgICAgIHRvb2wucmVuZGVyVG9vbFVzZVRhZyhpbnB1dC5kYXRhKX1cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIHshaXNSZXNvbHZlZCAmJlxuICAgICAgICAgICFpc1F1ZXVlZCAmJlxuICAgICAgICAgIChpc0NsYXNzaWZpZXJDaGVja2luZyA/IChcbiAgICAgICAgICAgIDxNZXNzYWdlUmVzcG9uc2UgaGVpZ2h0PXsxfT5cbiAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgICAge2lzQXV0b0NsYXNzaWZpZXJcbiAgICAgICAgICAgICAgICAgID8gJ0F1dG8gY2xhc3NpZmllciBjaGVja2luZ1xcdTIwMjYnXG4gICAgICAgICAgICAgICAgICA6ICdCYXNoIGNsYXNzaWZpZXIgY2hlY2tpbmdcXHUyMDI2J31cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPC9NZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgICAgKSA6IGlzV2FpdGluZ0ZvclBlcm1pc3Npb24gPyAoXG4gICAgICAgICAgICA8TWVzc2FnZVJlc3BvbnNlIGhlaWdodD17MX0+XG4gICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPldhaXRpbmcgZm9yIHBlcm1pc3Npb27igKY8L1RleHQ+XG4gICAgICAgICAgICA8L01lc3NhZ2VSZXNwb25zZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgcmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZShcbiAgICAgICAgICAgICAgdG9vbCxcbiAgICAgICAgICAgICAgdG9vbHMsXG4gICAgICAgICAgICAgIGxvb2t1cHMsXG4gICAgICAgICAgICAgIHBhcmFtLmlkLFxuICAgICAgICAgICAgICBwcm9ncmVzc01lc3NhZ2VzRm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZlcmJvc2UsXG4gICAgICAgICAgICAgICAgaW5Qcm9ncmVzc1Rvb2xDYWxsQ291bnQsXG4gICAgICAgICAgICAgICAgaXNUcmFuc2NyaXB0TW9kZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGVybWluYWxTaXplLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICkpfVxuICAgICAgICB7IWlzUmVzb2x2ZWQgJiYgaXNRdWV1ZWQgJiYgcmVuZGVyVG9vbFVzZVF1ZXVlZE1lc3NhZ2UodG9vbCl9XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuXG5mdW5jdGlvbiByZW5kZXJUb29sVXNlTWVzc2FnZShcbiAgdG9vbDogVG9vbCxcbiAgaW5wdXQ6IHVua25vd24sXG4gIHtcbiAgICB0aGVtZSxcbiAgICB2ZXJib3NlLFxuICAgIGNvbW1hbmRzLFxuICB9OiB7IHRoZW1lOiBUaGVtZU5hbWU7IHZlcmJvc2U6IGJvb2xlYW47IGNvbW1hbmRzOiBDb21tYW5kW10gfSxcbik6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gdG9vbC5pbnB1dFNjaGVtYS5zYWZlUGFyc2UoaW5wdXQpXG4gICAgaWYgKCFwYXJzZWQuc3VjY2Vzcykge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiB0b29sLnJlbmRlclRvb2xVc2VNZXNzYWdlKHBhcnNlZC5kYXRhLCB7IHRoZW1lLCB2ZXJib3NlLCBjb21tYW5kcyB9KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ0Vycm9yKFxuICAgICAgbmV3IEVycm9yKGBFcnJvciByZW5kZXJpbmcgdG9vbCB1c2UgbWVzc2FnZSBmb3IgJHt0b29sLm5hbWV9OiAke2Vycm9yfWApLFxuICAgIClcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5mdW5jdGlvbiByZW5kZXJUb29sVXNlUHJvZ3Jlc3NNZXNzYWdlKFxuICB0b29sOiBUb29sLFxuICB0b29sczogVG9vbHMsXG4gIGxvb2t1cHM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkTWVzc2FnZUxvb2t1cHM+LFxuICB0b29sVXNlSUQ6IHN0cmluZyxcbiAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2U6IFByb2dyZXNzTWVzc2FnZVtdLFxuICB7XG4gICAgdmVyYm9zZSxcbiAgICBpblByb2dyZXNzVG9vbENhbGxDb3VudCxcbiAgICBpc1RyYW5zY3JpcHRNb2RlLFxuICB9OiB7XG4gICAgdmVyYm9zZTogYm9vbGVhblxuICAgIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50PzogbnVtYmVyXG4gICAgaXNUcmFuc2NyaXB0TW9kZT86IGJvb2xlYW5cbiAgfSxcbiAgdGVybWluYWxTaXplOiB7IGNvbHVtbnM6IG51bWJlcjsgcm93czogbnVtYmVyIH0sXG4pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB0b29sUHJvZ3Jlc3NNZXNzYWdlcyA9IHByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlLmZpbHRlcihcbiAgICAobXNnKTogbXNnIGlzIFByb2dyZXNzTWVzc2FnZTxUb29sUHJvZ3Jlc3NEYXRhPiA9PlxuICAgICAgbXNnLmRhdGEudHlwZSAhPT0gJ2hvb2tfcHJvZ3Jlc3MnLFxuICApXG4gIHRyeSB7XG4gICAgY29uc3QgdG9vbE1lc3NhZ2VzID1cbiAgICAgIHRvb2wucmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZT8uKHRvb2xQcm9ncmVzc01lc3NhZ2VzLCB7XG4gICAgICAgIHRvb2xzLFxuICAgICAgICB2ZXJib3NlLFxuICAgICAgICB0ZXJtaW5hbFNpemUsXG4gICAgICAgIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50OiBpblByb2dyZXNzVG9vbENhbGxDb3VudCA/PyAxLFxuICAgICAgICBpc1RyYW5zY3JpcHRNb2RlLFxuICAgICAgfSkgPz8gbnVsbFxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8U2VudHJ5RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8SG9va1Byb2dyZXNzTWVzc2FnZVxuICAgICAgICAgICAgaG9va0V2ZW50PVwiUHJlVG9vbFVzZVwiXG4gICAgICAgICAgICBsb29rdXBzPXtsb29rdXBzfVxuICAgICAgICAgICAgdG9vbFVzZUlEPXt0b29sVXNlSUR9XG4gICAgICAgICAgICB2ZXJib3NlPXt2ZXJib3NlfVxuICAgICAgICAgICAgaXNUcmFuc2NyaXB0TW9kZT17aXNUcmFuc2NyaXB0TW9kZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NlbnRyeUVycm9yQm91bmRhcnk+XG4gICAgICAgIHt0b29sTWVzc2FnZXN9XG4gICAgICA8Lz5cbiAgICApXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nRXJyb3IoXG4gICAgICBuZXcgRXJyb3IoXG4gICAgICAgIGBFcnJvciByZW5kZXJpbmcgdG9vbCB1c2UgcHJvZ3Jlc3MgbWVzc2FnZSBmb3IgJHt0b29sLm5hbWV9OiAke2Vycm9yfWAsXG4gICAgICApLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclRvb2xVc2VRdWV1ZWRNZXNzYWdlKHRvb2w6IFRvb2wpOiBSZWFjdC5SZWFjdE5vZGUge1xuICB0cnkge1xuICAgIHJldHVybiB0b29sLnJlbmRlclRvb2xVc2VRdWV1ZWRNZXNzYWdlPy4oKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ0Vycm9yKFxuICAgICAgbmV3IEVycm9yKFxuICAgICAgICBgRXJyb3IgcmVuZGVyaW5nIHRvb2wgdXNlIHF1ZXVlZCBtZXNzYWdlIGZvciAke3Rvb2wubmFtZX06ICR7ZXJyb3J9YCxcbiAgICAgICksXG4gICAgKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLGNBQWNBLGlCQUFpQixRQUFRLHVDQUF1QztBQUM5RSxPQUFPQyxLQUFLLElBQUlDLE9BQU8sUUFBUSxPQUFPO0FBQ3RDLFNBQVNDLGVBQWUsUUFBUSw4QkFBOEI7QUFDOUQsY0FBY0MsU0FBUyxRQUFRLG9CQUFvQjtBQUNuRCxjQUFjQyxPQUFPLFFBQVEsbUJBQW1CO0FBQ2hELFNBQVNDLFlBQVksUUFBUSw0QkFBNEI7QUFDekQsU0FBU0MsV0FBVyxRQUFRLDBCQUEwQjtBQUN0RCxTQUFTQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLGNBQWM7QUFDbEQsU0FBU0MsaUNBQWlDLFFBQVEseUJBQXlCO0FBQzNFLFNBQ0VDLGNBQWMsRUFDZCxLQUFLQyxJQUFJLEVBQ1QsS0FBS0MsZ0JBQWdCLEVBQ3JCLEtBQUtDLEtBQUssUUFDTCxlQUFlO0FBQ3RCLGNBQWNDLGVBQWUsUUFBUSx3QkFBd0I7QUFDN0QsU0FBU0MsdUJBQXVCLFFBQVEsd0NBQXdDO0FBQ2hGLFNBQVNDLFFBQVEsUUFBUSxvQkFBb0I7QUFDN0MsY0FBY0MsbUJBQW1CLFFBQVEseUJBQXlCO0FBQ2xFLFNBQVNDLGVBQWUsUUFBUSx1QkFBdUI7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
|
|
380
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sVXNlQmxvY2tQYXJhbSIsIlJlYWN0IiwidXNlTWVtbyIsInVzZVRlcm1pbmFsU2l6ZSIsIlRoZW1lTmFtZSIsIkNvbW1hbmQiLCJCTEFDS19DSVJDTEUiLCJzdHJpbmdXaWR0aCIsIkJveCIsIlRleHQiLCJ1c2VUaGVtZSIsInVzZUFwcFN0YXRlTWF5YmVPdXRzaWRlT2ZQcm92aWRlciIsImZpbmRUb29sQnlOYW1lIiwiVG9vbCIsIlRvb2xQcm9ncmVzc0RhdGEiLCJUb29scyIsIlByb2dyZXNzTWVzc2FnZSIsInVzZUlzQ2xhc3NpZmllckNoZWNraW5nIiwibG9nRXJyb3IiLCJidWlsZE1lc3NhZ2VMb29rdXBzIiwiTWVzc2FnZVJlc3BvbnNlIiwidXNlU2VsZWN0ZWRNZXNzYWdlQmciLCJTZW50cnlFcnJvckJvdW5kYXJ5IiwiVG9vbFVzZUxvYWRlciIsIkhvb2tQcm9ncmVzc01lc3NhZ2UiLCJQcm9wcyIsInBhcmFtIiwiYWRkTWFyZ2luIiwidG9vbHMiLCJjb21tYW5kcyIsInZlcmJvc2UiLCJpblByb2dyZXNzVG9vbFVzZUlEcyIsIlNldCIsInByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlIiwic2hvdWxkQW5pbWF0ZSIsInNob3VsZFNob3dEb3QiLCJpblByb2dyZXNzVG9vbENhbGxDb3VudCIsImxvb2t1cHMiLCJSZXR1cm5UeXBlIiwiaXNUcmFuc2NyaXB0TW9kZSIsIkFzc2lzdGFudFRvb2xVc2VNZXNzYWdlIiwidDAiLCIkIiwiX2MiLCJ0ZXJtaW5hbFNpemUiLCJ0aGVtZSIsImJnIiwicGVuZGluZ1dvcmtlclJlcXVlc3QiLCJfdGVtcCIsImlzQ2xhc3NpZmllckNoZWNraW5nUmF3IiwiaWQiLCJwZXJtaXNzaW9uTW9kZSIsIl90ZW1wMiIsImhhc1N0cmlwcGVkUnVsZXMiLCJfdGVtcDMiLCJpc0F1dG9DbGFzc2lmaWVyIiwiaXNDbGFzc2lmaWVyQ2hlY2tpbmciLCJ0MSIsImlucHV0IiwibmFtZSIsImJiMCIsInRvb2wiLCJpbnB1dFNjaGVtYSIsInNhZmVQYXJzZSIsImRhdGEiLCJzdWNjZXNzIiwidW5kZWZpbmVkIiwidXNlckZhY2luZ1Rvb2xOYW1lIiwidXNlckZhY2luZ05hbWUiLCJ1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3IiLCJ1c2VyRmFjaW5nTmFtZUJhY2tncm91bmRDb2xvciIsImlzVHJhbnNwYXJlbnRXcmFwcGVyIiwicGFyc2VkIiwiRXJyb3IiLCJ0b29sXzAiLCJpbnB1dF8wIiwidDIiLCJyZXNvbHZlZFRvb2xVc2VJRHMiLCJoYXMiLCJpc1Jlc29sdmVkIiwidDMiLCJpc1F1ZXVlZCIsImlzV2FpdGluZ0ZvclBlcm1pc3Npb24iLCJ0b29sVXNlSWQiLCJ0NCIsInJlbmRlclRvb2xVc2VQcm9ncmVzc01lc3NhZ2UiLCJ0NSIsInJlbmRlclRvb2xVc2VNZXNzYWdlIiwicmVuZGVyZWRUb29sVXNlTWVzc2FnZSIsInQ2IiwidDciLCJlcnJvcmVkVG9vbFVzZUlEcyIsInQ4IiwidDkiLCJ0MTAiLCJ0MTEiLCJyZW5kZXJUb29sVXNlVGFnIiwidDEyIiwidDEzIiwidDE0IiwicmVuZGVyVG9vbFVzZVF1ZXVlZE1lc3NhZ2UiLCJ0MTUiLCJ0MTYiLCJzdGF0ZV8xIiwic3RhdGUiLCJ0b29sUGVybWlzc2lvbkNvbnRleHQiLCJzdHJpcHBlZERhbmdlcm91c1J1bGVzIiwic3RhdGVfMCIsIm1vZGUiLCJSZWFjdE5vZGUiLCJlcnJvciIsInRvb2xVc2VJRCIsImNvbHVtbnMiLCJyb3dzIiwidG9vbFByb2dyZXNzTWVzc2FnZXMiLCJmaWx0ZXIiLCJtc2ciLCJ0eXBlIiwidG9vbE1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiQXNzaXN0YW50VG9vbFVzZU1lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVG9vbFVzZUJsb2NrUGFyYW0gfSBmcm9tICdAYW50aHJvcGljLWFpL3Nkay9yZXNvdXJjZXMvaW5kZXgubWpzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRlcm1pbmFsU2l6ZSB9IGZyb20gJ3NyYy9ob29rcy91c2VUZXJtaW5hbFNpemUuanMnXG5pbXBvcnQgdHlwZSB7IFRoZW1lTmFtZSB9IGZyb20gJ3NyYy91dGlscy90aGVtZS5qcydcbmltcG9ydCB0eXBlIHsgQ29tbWFuZCB9IGZyb20gJy4uLy4uL2NvbW1hbmRzLmpzJ1xuaW1wb3J0IHsgQkxBQ0tfQ0lSQ0xFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2ZpZ3VyZXMuanMnXG5pbXBvcnQgeyBzdHJpbmdXaWR0aCB9IGZyb20gJy4uLy4uL2luay9zdHJpbmdXaWR0aC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCwgdXNlVGhlbWUgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB7XG4gIGZpbmRUb29sQnlOYW1lLFxuICB0eXBlIFRvb2wsXG4gIHR5cGUgVG9vbFByb2dyZXNzRGF0YSxcbiAgdHlwZSBUb29scyxcbn0gZnJvbSAnLi4vLi4vVG9vbC5qcydcbmltcG9ydCB0eXBlIHsgUHJvZ3Jlc3NNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvbWVzc2FnZS5qcydcbmltcG9ydCB7IHVzZUlzQ2xhc3NpZmllckNoZWNraW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NpZmllckFwcHJvdmFsc0hvb2suanMnXG5pbXBvcnQgeyBsb2dFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcydcbmltcG9ydCB0eXBlIHsgYnVpbGRNZXNzYWdlTG9va3VwcyB9IGZyb20gJy4uLy4uL3V0aWxzL21lc3NhZ2VzLmpzJ1xuaW1wb3J0IHsgTWVzc2FnZVJlc3BvbnNlIH0gZnJvbSAnLi4vTWVzc2FnZVJlc3BvbnNlLmpzJ1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRNZXNzYWdlQmcgfSBmcm9tICcuLi9tZXNzYWdlQWN0aW9ucy5qcydcbmltcG9ydCB7IFNlbnRyeUVycm9yQm91bmRhcnkgfSBmcm9tICcuLi9TZW50cnlFcnJvckJvdW5kYXJ5LmpzJ1xuaW1wb3J0IHsgVG9vbFVzZUxvYWRlciB9IGZyb20gJy4uL1Rvb2xVc2VMb2FkZXIuanMnXG5pbXBvcnQgeyBIb29rUHJvZ3Jlc3NNZXNzYWdlIH0gZnJvbSAnLi9Ib29rUHJvZ3Jlc3NNZXNzYWdlLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBwYXJhbTogVG9vbFVzZUJsb2NrUGFyYW1cbiAgYWRkTWFyZ2luOiBib29sZWFuXG4gIHRvb2xzOiBUb29sc1xuICBjb21tYW5kczogQ29tbWFuZFtdXG4gIHZlcmJvc2U6IGJvb2xlYW5cbiAgaW5Qcm9ncmVzc1Rvb2xVc2VJRHM6IFNldDxzdHJpbmc+XG4gIHByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlOiBQcm9ncmVzc01lc3NhZ2VbXVxuICBzaG91bGRBbmltYXRlOiBib29sZWFuXG4gIHNob3VsZFNob3dEb3Q6IGJvb2xlYW5cbiAgaW5Qcm9ncmVzc1Rvb2xDYWxsQ291bnQ/OiBudW1iZXJcbiAgbG9va3VwczogUmV0dXJuVHlwZTx0eXBlb2YgYnVpbGRNZXNzYWdlTG9va3Vwcz5cbiAgaXNUcmFuc2NyaXB0TW9kZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFzc2lzdGFudFRvb2xVc2VNZXNzYWdlKHtcbiAgcGFyYW0sXG4gIGFkZE1hcmdpbixcbiAgdG9vbHMsXG4gIGNvbW1hbmRzLFxuICB2ZXJib3NlLFxuICBpblByb2dyZXNzVG9vbFVzZUlEcyxcbiAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2UsXG4gIHNob3VsZEFuaW1hdGUsXG4gIHNob3VsZFNob3dEb3QsXG4gIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50LFxuICBsb29rdXBzLFxuICBpc1RyYW5zY3JpcHRNb2RlLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB0ZXJtaW5hbFNpemUgPSB1c2VUZXJtaW5hbFNpemUoKVxuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCBiZyA9IHVzZVNlbGVjdGVkTWVzc2FnZUJnKClcbiAgY29uc3QgcGVuZGluZ1dvcmtlclJlcXVlc3QgPSB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIoXG4gICAgc3RhdGUgPT4gc3RhdGUucGVuZGluZ1dvcmtlclJlcXVlc3QsXG4gIClcbiAgY29uc3QgaXNDbGFzc2lmaWVyQ2hlY2tpbmdSYXcgPSB1c2VJc0NsYXNzaWZpZXJDaGVja2luZyhwYXJhbS5pZClcbiAgY29uc3QgcGVybWlzc2lvbk1vZGUgPSB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIoXG4gICAgc3RhdGUgPT4gc3RhdGUudG9vbFBlcm1pc3Npb25Db250ZXh0Lm1vZGUsXG4gIClcbiAgLy8gc3RyaXBwZWREYW5nZXJvdXNSdWxlcyBpcyBzZXQgYnkgc3RyaXBEYW5nZXJvdXNQZXJtaXNzaW9uc0ZvckF1dG9Nb2RlXG4gIC8vIChldmVuIHRvIHt9KSB3aGVuZXZlciBhdXRvIGlzIGFjdGl2ZSwgYW5kIGNsZWFyZWQgYnkgcmVzdG9yZURhbmdlcm91c1Blcm1pc3Npb25zXG4gIC8vIG9uIGRlYWN0aXZhdGlvbiDigJQgYSByZWxpYWJsZSBwcm94eSBmb3IgaXNBdXRvTW9kZUFjdGl2ZSgpIGR1cmluZyBwbGFuLlxuICAvLyBwcmVQbGFuTW9kZSB3b3VsZCBiZSBzdGFsZSBhZnRlciB0cmFuc2l0aW9uUGxhbkF1dG9Nb2RlIGRlYWN0aXZhdGVzIG1pZC1wbGFuLlxuICBjb25zdCBoYXNTdHJpcHBlZFJ1bGVzID0gdXNlQXBwU3RhdGVNYXliZU91dHNpZGVPZlByb3ZpZGVyKFxuICAgIHN0YXRlID0+ICEhc3RhdGUudG9vbFBlcm1pc3Npb25Db250ZXh0LnN0cmlwcGVkRGFuZ2Vyb3VzUnVsZXMsXG4gIClcbiAgY29uc3QgaXNBdXRvQ2xhc3NpZmllciA9XG4gICAgcGVybWlzc2lvbk1vZGUgPT09ICdhdXRvJyB8fCAocGVybWlzc2lvbk1vZGUgPT09ICdwbGFuJyAmJiBoYXNTdHJpcHBlZFJ1bGVzKVxuICBjb25zdCBpc0NsYXNzaWZpZXJDaGVja2luZyA9XG4gICAgXCJleHRlcm5hbFwiID09PSAnYW50JyAmJlxuICAgIGlzQ2xhc3NpZmllckNoZWNraW5nUmF3ICYmXG4gICAgcGVybWlzc2lvbk1vZGUgIT09ICdhdXRvJ1xuXG4gIC8vIE1lbW9pemUgb24gcGFyYW0gaWRlbnRpdHkgKHN0YWJsZSDigJQgZnJvbSB0aGUgcGVyc2lzdGVkIG1lc3NhZ2Ugb2JqZWN0KS5cbiAgLy8gWm9kIHNhZmVQYXJzZSBhbGxvY2F0ZXMgcGVyIGNhbGwsIGFuZCBzb21lIHRvb2xzJyB1c2VyRmFjaW5nTmFtZSgpXG4gIC8vIChCYXNoVG9vbCDihpIgc2hvdWxkVXNlU2FuZGJveCDihpIgc2hlbGwtcXVvdGUgcGFyc2UpIGFyZSBleHBlbnNpdmUuIFdpdGhvdXRcbiAgLy8gdGhpcywgfjUwIGJhc2ggbWVzc2FnZXMgw5cgc2hlbGwtcXVvdGUtcGVyLXJlbmRlciBwdXNoZWQgdHJhbnNpdGlvblxuICAvLyByZW5kZXIgcGFzdCB0aGUgc2hpbW1lciB0aWNrIOKGkiBhYm9ydCDihpIgaW5maW5pdGUgcmV0cnkgKCMyMTYwNSkuXG4gIGNvbnN0IHBhcnNlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghdG9vbHMpIHJldHVybiBudWxsXG4gICAgY29uc3QgdG9vbCA9IGZpbmRUb29sQnlOYW1lKHRvb2xzLCBwYXJhbS5uYW1lKVxuICAgIGlmICghdG9vbCkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBpbnB1dCA9IHRvb2wuaW5wdXRTY2hlbWEuc2FmZVBhcnNlKHBhcmFtLmlucHV0KVxuICAgIGNvbnN0IGRhdGEgPSBpbnB1dC5zdWNjZXNzID8gaW5wdXQuZGF0YSA6IHVuZGVmaW5lZFxuICAgIHJldHVybiB7XG4gICAgICB0b29sLFxuICAgICAgaW5wdXQsXG4gICAgICB1c2VyRmFjaW5nVG9vbE5hbWU6IHRvb2wudXNlckZhY2luZ05hbWUoZGF0YSksXG4gICAgICB1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3I6XG4gICAgICAgIHRvb2wudXNlckZhY2luZ05hbWVCYWNrZ3JvdW5kQ29sb3I/LihkYXRhKSxcbiAgICAgIGlzVHJhbnNwYXJlbnRXcmFwcGVyOiB0b29sLmlzVHJhbnNwYXJlbnRXcmFwcGVyPy4oKSA/PyBmYWxzZSxcbiAgICB9XG4gIH0sIFt0b29scywgcGFyYW1dKVxuXG4gIGlmICghcGFyc2VkKSB7XG4gICAgLy8gR3VhcmQgYWdhaW5zdCB1bmRlZmluZWQgdG9vbHMgKHJlcXVpcmVkIHByb3ApIG9yIHVua25vd24gdG9vbCBuYW1lXG4gICAgbG9nRXJyb3IoXG4gICAgICBuZXcgRXJyb3IoXG4gICAgICAgIHRvb2xzXG4gICAgICAgICAgPyBgVG9vbCAke3BhcmFtLm5hbWV9IG5vdCBmb3VuZGBcbiAgICAgICAgICA6IGBUb29scyBhcnJheSBpcyB1bmRlZmluZWQgZm9yIHRvb2wgJHtwYXJhbS5uYW1lfWAsXG4gICAgICApLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3Qge1xuICAgIHRvb2wsXG4gICAgaW5wdXQsXG4gICAgdXNlckZhY2luZ1Rvb2xOYW1lLFxuICAgIHVzZXJGYWNpbmdUb29sTmFtZUJhY2tncm91bmRDb2xvcixcbiAgICBpc1RyYW5zcGFyZW50V3JhcHBlcixcbiAgfSA9IHBhcnNlZFxuXG4gIGNvbnN0IGlzUmVzb2x2ZWQgPSBsb29rdXBzLnJlc29sdmVkVG9vbFVzZUlEcy5oYXMocGFyYW0uaWQpXG4gIGNvbnN0IGlzUXVldWVkID0gIWluUHJvZ3Jlc3NUb29sVXNlSURzLmhhcyhwYXJhbS5pZCkgJiYgIWlzUmVzb2x2ZWRcbiAgY29uc3QgaXNXYWl0aW5nRm9yUGVybWlzc2lvbiA9IHBlbmRpbmdXb3JrZXJSZXF1ZXN0Py50b29sVXNlSWQgPT09IHBhcmFtLmlkXG5cbiAgaWYgKGlzVHJhbnNwYXJlbnRXcmFwcGVyKSB7XG4gICAgaWYgKGlzUXVldWVkIHx8IGlzUmVzb2x2ZWQpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIHdpZHRoPVwiMTAwJVwiIGJhY2tncm91bmRDb2xvcj17Ymd9PlxuICAgICAgICB7cmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZShcbiAgICAgICAgICB0b29sLFxuICAgICAgICAgIHRvb2xzLFxuICAgICAgICAgIGxvb2t1cHMsXG4gICAgICAgICAgcGFyYW0uaWQsXG4gICAgICAgICAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2UsXG4gICAgICAgICAgeyB2ZXJib3NlLCBpblByb2dyZXNzVG9vbENhbGxDb3VudCwgaXNUcmFuc2NyaXB0TW9kZSB9LFxuICAgICAgICAgIHRlcm1pbmFsU2l6ZSxcbiAgICAgICAgKX1cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIGlmICh1c2VyRmFjaW5nVG9vbE5hbWUgPT09ICcnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVkVG9vbFVzZU1lc3NhZ2UgPSBpbnB1dC5zdWNjZXNzXG4gICAgPyByZW5kZXJUb29sVXNlTWVzc2FnZSh0b29sLCBpbnB1dC5kYXRhLCB7IHRoZW1lLCB2ZXJib3NlLCBjb21tYW5kcyB9KVxuICAgIDogbnVsbFxuICBpZiAocmVuZGVyZWRUb29sVXNlTWVzc2FnZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3hcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJyb3dcIlxuICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgIG1hcmdpblRvcD17YWRkTWFyZ2luID8gMSA6IDB9XG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgYmFja2dyb3VuZENvbG9yPXtiZ31cbiAgICA+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGZsZXhXcmFwPVwibm93cmFwXCJcbiAgICAgICAgICBtaW5XaWR0aD17c3RyaW5nV2lkdGgodXNlckZhY2luZ1Rvb2xOYW1lKSArIChzaG91bGRTaG93RG90ID8gMiA6IDApfVxuICAgICAgICA+XG4gICAgICAgICAge3Nob3VsZFNob3dEb3QgJiZcbiAgICAgICAgICAgIChpc1F1ZXVlZCA/IChcbiAgICAgICAgICAgICAgPEJveCBtaW5XaWR0aD17Mn0+XG4gICAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I9e2lzUXVldWVkfT57QkxBQ0tfQ0lSQ0xFfTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAvLyBXQVJOSU5HOiBUaGUgY29kZSBoZXJlIGFuZCBpbiBUb29sVXNlTG9hZGVyIGlzIHBhcnRpY3VsYXJseVxuICAgICAgICAgICAgICAvLyBzZW5zaXRpdmUgdG8gd2hhdCAqc2hvdWxkKiBqdXN0IGJlIHRyaXZpYWwgcmVmYWN0b3JpbmdzLiBTZWVcbiAgICAgICAgICAgICAgLy8gdGhlIGNvbW1lbnQgaW4gVG9vbFVzZUxvYWRlciBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICAgICAgICA8VG9vbFVzZUxvYWRlclxuICAgICAgICAgICAgICAgIHNob3VsZEFuaW1hdGU9e3Nob3VsZEFuaW1hdGV9XG4gICAgICAgICAgICAgICAgaXNVbnJlc29sdmVkPXshaXNSZXNvbHZlZH1cbiAgICAgICAgICAgICAgICBpc0Vycm9yPXtsb29rdXBzLmVycm9yZWRUb29sVXNlSURzLmhhcyhwYXJhbS5pZCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8Qm94IGZsZXhTaHJpbms9ezB9PlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgYm9sZFxuICAgICAgICAgICAgICB3cmFwPVwidHJ1bmNhdGUtZW5kXCJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXt1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3J9XG4gICAgICAgICAgICAgIGNvbG9yPXtcbiAgICAgICAgICAgICAgICB1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3IgPyAnaW52ZXJzZVRleHQnIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3VzZXJGYWNpbmdUb29sTmFtZX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7cmVuZGVyZWRUb29sVXNlTWVzc2FnZSAhPT0gJycgJiYgKFxuICAgICAgICAgICAgPEJveCBmbGV4V3JhcD1cIm5vd3JhcFwiPlxuICAgICAgICAgICAgICA8VGV4dD4oe3JlbmRlcmVkVG9vbFVzZU1lc3NhZ2V9KTwvVGV4dD5cbiAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICl9XG4gICAgICAgICAgey8qIFJlbmRlciB0b29sLXNwZWNpZmljIHRhZ3MgKHRpbWVvdXQsIG1vZGVsLCByZXN1bWUgSUQsIGV0Yy4pICovfVxuICAgICAgICAgIHtpbnB1dC5zdWNjZXNzICYmXG4gICAgICAgICAgICB0b29sLnJlbmRlclRvb2xVc2VUYWcgJiZcbiAgICAgICAgICAgIHRvb2wucmVuZGVyVG9vbFVzZVRhZyhpbnB1dC5kYXRhKX1cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIHshaXNSZXNvbHZlZCAmJlxuICAgICAgICAgICFpc1F1ZXVlZCAmJlxuICAgICAgICAgIChpc0NsYXNzaWZpZXJDaGVja2luZyA/IChcbiAgICAgICAgICAgIDxNZXNzYWdlUmVzcG9uc2UgaGVpZ2h0PXsxfT5cbiAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgICAge2lzQXV0b0NsYXNzaWZpZXJcbiAgICAgICAgICAgICAgICAgID8gJ0F1dG8gY2xhc3NpZmllciBjaGVja2luZ1xcdTIwMjYnXG4gICAgICAgICAgICAgICAgICA6ICdCYXNoIGNsYXNzaWZpZXIgY2hlY2tpbmdcXHUyMDI2J31cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPC9NZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgICAgKSA6IGlzV2FpdGluZ0ZvclBlcm1pc3Npb24gPyAoXG4gICAgICAgICAgICA8TWVzc2FnZVJlc3BvbnNlIGhlaWdodD17MX0+XG4gICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPldhaXRpbmcgZm9yIHBlcm1pc3Npb27igKY8L1RleHQ+XG4gICAgICAgICAgICA8L01lc3NhZ2VSZXNwb25zZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgcmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZShcbiAgICAgICAgICAgICAgdG9vbCxcbiAgICAgICAgICAgICAgdG9vbHMsXG4gICAgICAgICAgICAgIGxvb2t1cHMsXG4gICAgICAgICAgICAgIHBhcmFtLmlkLFxuICAgICAgICAgICAgICBwcm9ncmVzc01lc3NhZ2VzRm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZlcmJvc2UsXG4gICAgICAgICAgICAgICAgaW5Qcm9ncmVzc1Rvb2xDYWxsQ291bnQsXG4gICAgICAgICAgICAgICAgaXNUcmFuc2NyaXB0TW9kZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGVybWluYWxTaXplLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICkpfVxuICAgICAgICB7IWlzUmVzb2x2ZWQgJiYgaXNRdWV1ZWQgJiYgcmVuZGVyVG9vbFVzZVF1ZXVlZE1lc3NhZ2UodG9vbCl9XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuXG5mdW5jdGlvbiByZW5kZXJUb29sVXNlTWVzc2FnZShcbiAgdG9vbDogVG9vbCxcbiAgaW5wdXQ6IHVua25vd24sXG4gIHtcbiAgICB0aGVtZSxcbiAgICB2ZXJib3NlLFxuICAgIGNvbW1hbmRzLFxuICB9OiB7IHRoZW1lOiBUaGVtZU5hbWU7IHZlcmJvc2U6IGJvb2xlYW47IGNvbW1hbmRzOiBDb21tYW5kW10gfSxcbik6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gdG9vbC5pbnB1dFNjaGVtYS5zYWZlUGFyc2UoaW5wdXQpXG4gICAgaWYgKCFwYXJzZWQuc3VjY2Vzcykge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiB0b29sLnJlbmRlclRvb2xVc2VNZXNzYWdlKHBhcnNlZC5kYXRhLCB7IHRoZW1lLCB2ZXJib3NlLCBjb21tYW5kcyB9KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ0Vycm9yKFxuICAgICAgbmV3IEVycm9yKGBFcnJvciByZW5kZXJpbmcgdG9vbCB1c2UgbWVzc2FnZSBmb3IgJHt0b29sLm5hbWV9OiAke2Vycm9yfWApLFxuICAgIClcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5mdW5jdGlvbiByZW5kZXJUb29sVXNlUHJvZ3Jlc3NNZXNzYWdlKFxuICB0b29sOiBUb29sLFxuICB0b29sczogVG9vbHMsXG4gIGxvb2t1cHM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkTWVzc2FnZUxvb2t1cHM+LFxuICB0b29sVXNlSUQ6IHN0cmluZyxcbiAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2U6IFByb2dyZXNzTWVzc2FnZVtdLFxuICB7XG4gICAgdmVyYm9zZSxcbiAgICBpblByb2dyZXNzVG9vbENhbGxDb3VudCxcbiAgICBpc1RyYW5zY3JpcHRNb2RlLFxuICB9OiB7XG4gICAgdmVyYm9zZTogYm9vbGVhblxuICAgIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50PzogbnVtYmVyXG4gICAgaXNUcmFuc2NyaXB0TW9kZT86IGJvb2xlYW5cbiAgfSxcbiAgdGVybWluYWxTaXplOiB7IGNvbHVtbnM6IG51bWJlcjsgcm93czogbnVtYmVyIH0sXG4pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB0b29sUHJvZ3Jlc3NNZXNzYWdlcyA9IHByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlLmZpbHRlcihcbiAgICAobXNnKTogbXNnIGlzIFByb2dyZXNzTWVzc2FnZTxUb29sUHJvZ3Jlc3NEYXRhPiA9PlxuICAgICAgbXNnLmRhdGEudHlwZSAhPT0gJ2hvb2tfcHJvZ3Jlc3MnLFxuICApXG4gIHRyeSB7XG4gICAgY29uc3QgdG9vbE1lc3NhZ2VzID1cbiAgICAgIHRvb2wucmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZT8uKHRvb2xQcm9ncmVzc01lc3NhZ2VzLCB7XG4gICAgICAgIHRvb2xzLFxuICAgICAgICB2ZXJib3NlLFxuICAgICAgICB0ZXJtaW5hbFNpemUsXG4gICAgICAgIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50OiBpblByb2dyZXNzVG9vbENhbGxDb3VudCA/PyAxLFxuICAgICAgICBpc1RyYW5zY3JpcHRNb2RlLFxuICAgICAgfSkgPz8gbnVsbFxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8U2VudHJ5RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8SG9va1Byb2dyZXNzTWVzc2FnZVxuICAgICAgICAgICAgaG9va0V2ZW50PVwiUHJlVG9vbFVzZVwiXG4gICAgICAgICAgICBsb29rdXBzPXtsb29rdXBzfVxuICAgICAgICAgICAgdG9vbFVzZUlEPXt0b29sVXNlSUR9XG4gICAgICAgICAgICB2ZXJib3NlPXt2ZXJib3NlfVxuICAgICAgICAgICAgaXNUcmFuc2NyaXB0TW9kZT17aXNUcmFuc2NyaXB0TW9kZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NlbnRyeUVycm9yQm91bmRhcnk+XG4gICAgICAgIHt0b29sTWVzc2FnZXN9XG4gICAgICA8Lz5cbiAgICApXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nRXJyb3IoXG4gICAgICBuZXcgRXJyb3IoXG4gICAgICAgIGBFcnJvciByZW5kZXJpbmcgdG9vbCB1c2UgcHJvZ3Jlc3MgbWVzc2FnZSBmb3IgJHt0b29sLm5hbWV9OiAke2Vycm9yfWAsXG4gICAgICApLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclRvb2xVc2VRdWV1ZWRNZXNzYWdlKHRvb2w6IFRvb2wpOiBSZWFjdC5SZWFjdE5vZGUge1xuICB0cnkge1xuICAgIHJldHVybiB0b29sLnJlbmRlclRvb2xVc2VRdWV1ZWRNZXNzYWdlPy4oKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ0Vycm9yKFxuICAgICAgbmV3IEVycm9yKFxuICAgICAgICBgRXJyb3IgcmVuZGVyaW5nIHRvb2wgdXNlIHF1ZXVlZCBtZXNzYWdlIGZvciAke3Rvb2wubmFtZX06ICR7ZXJyb3J9YCxcbiAgICAgICksXG4gICAgKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLGNBQWNBLGlCQUFpQixRQUFRLHVDQUF1QztBQUM5RSxPQUFPQyxLQUFLLElBQUlDLE9BQU8sUUFBUSxPQUFPO0FBQ3RDLFNBQVNDLGVBQWUsUUFBUSw4QkFBOEI7QUFDOUQsY0FBY0MsU0FBUyxRQUFRLG9CQUFvQjtBQUNuRCxjQUFjQyxPQUFPLFFBQVEsbUJBQW1CO0FBQ2hELFNBQVNDLFlBQVksUUFBUSw0QkFBNEI7QUFDekQsU0FBU0MsV0FBVyxRQUFRLDBCQUEwQjtBQUN0RCxTQUFTQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLGNBQWM7QUFDbEQsU0FBU0MsaUNBQWlDLFFBQVEseUJBQXlCO0FBQzNFLFNBQ0VDLGNBQWMsRUFDZCxLQUFLQyxJQUFJLEVBQ1QsS0FBS0MsZ0JBQWdCLEVBQ3JCLEtBQUtDLEtBQUssUUFDTCxlQUFlO0FBQ3RCLGNBQWNDLGVBQWUsUUFBUSx3QkFBd0I7QUFDN0QsU0FBU0MsdUJBQXVCLFFBQVEsd0NBQXdDO0FBQ2hGLFNBQVNDLFFBQVEsUUFBUSxvQkFBb0I7QUFDN0MsY0FBY0MsbUJBQW1CLFFBQVEseUJBQXlCO0FBQ2xFLFNBQVNDLGVBQWUsUUFBUSx1QkFBdUI7QUFDdkQsU0FBU0Msb0JBQW9CLFFBQVEsc0JBQXNCO0FBQzNELFNBQVNDLG1CQUFtQixRQUFRLDJCQUEyQjtBQUMvRCxTQUFTQyxhQUFhLFFBQVEscUJBQXFCO0FBQ25ELFNBQVNDLG1CQUFtQixRQUFRLDBCQUEwQjtBQUU5RCxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsS0FBSyxFQUFFMUIsaUJBQWlCO0VBQ3hCMkIsU0FBUyxFQUFFLE9BQU87RUFDbEJDLEtBQUssRUFBRWIsS0FBSztFQUNaYyxRQUFRLEVBQUV4QixPQUFPLEVBQUU7RUFDbkJ5QixPQUFPLEVBQUUsT0FBTztFQUNoQkMsb0JBQW9CLEVBQUVDLEdBQUcsQ0FBQyxNQUFNLENBQUM7RUFDakNDLDBCQUEwQixFQUFFakIsZUFBZSxFQUFFO0VBQzdDa0IsYUFBYSxFQUFFLE9BQU87RUFDdEJDLGFBQWEsRUFBRSxPQUFPO0VBQ3RCQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU07RUFDaENDLE9BQU8sRUFBRUMsVUFBVSxDQUFDLE9BQU9uQixtQkFBbUIsQ0FBQztFQUMvQ29CLGdCQUFnQixDQUFDLEVBQUUsT0FBTztBQUM1QixDQUFDO0FBRUQsT0FBTyxTQUFBQyx3QkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUFpQztJQUFBakIsS0FBQTtJQUFBQyxTQUFBO0lBQUFDLEtBQUE7SUFBQUMsUUFBQTtJQUFBQyxPQUFBO0lBQUFDLG9CQUFBO0lBQUFFLDBCQUFBO0lBQUFDLGFBQUE7SUFBQUMsYUFBQTtJQUFBQyx1QkFBQTtJQUFBQyxPQUFBO0lBQUFFO0VBQUEsSUFBQUUsRUFhaEM7RUFDTixNQUFBRyxZQUFBLEdBQXFCekMsZUFBZSxDQUFDLENBQUM7RUFDdEMsT0FBQTBDLEtBQUEsSUFBZ0JuQyxRQUFRLENBQUMsQ0FBQztFQUMxQixNQUFBb0MsRUFBQSxHQUFXekIsb0JBQW9CLENBQUMsQ0FBQztFQUNqQyxNQUFBMEIsb0JBQUEsR0FBNkJwQyxpQ0FBaUMsQ0FDNURxQyxLQUNGLENBQUM7RUFDRCxNQUFBQyx1QkFBQSxHQUFnQ2hDLHVCQUF1QixDQUFDUyxLQUFLLENBQUF3QixFQUFHLENBQUM7RUFDakUsTUFBQUMsY0FBQSxHQUF1QnhDLGlDQUFpQyxDQUN0RHlDLE1BQ0YsQ0FBQztFQUtELE1BQUFDLGdCQUFBLEdBQXlCMUMsaUNBQWlDLENBQ3hEMkMsTUFDRixDQUFDO0VBQ0QsTUFBQUMsZ0JBQUEsR0FDRUosY0FBYyxLQUFLLE1BQXlELElBQTlDQSxjQUFjLEtBQUssTUFBMEIsSUFBN0NFLGdCQUE4QztFQUM5RSxNQUFBRyxvQkFBQSxHQUNFLEtBQ3VCLElBRHZCUCx1QkFFeUIsSUFBekJFLGNBQWMsS0FBSyxNQUFNO0VBQUEsSUFBQU0sRUFBQTtFQUFBLElBQUFmLENBQUEsUUFBQWhCLEtBQUEsQ0FBQWdDLEtBQUEsSUFBQWhCLENBQUEsUUFBQWhCLEtBQUEsQ0FBQWlDLElBQUEsSUFBQWpCLENBQUEsUUFBQWQsS0FBQTtJQUFBZ0MsR0FBQTtNQVF6QixJQUFJLENBQUNoQyxLQUFLO1FBQUU2QixFQUFBLEdBQU8sSUFBSTtRQUFYLE1BQUFHLEdBQUE7TUFBVztNQUN2QixNQUFBQyxJQUFBLEdBQWFqRCxjQUFjLENBQUNnQixLQUFLLEVBQUVGLEtBQUssQ0FBQWlDLElBQUssQ0FBQztNQUM5QyxJQUFJLENBQUNFLElBQUk7UUFBRUosRUFBQSxHQUFPLElBQUk7UUFBWCxNQUFBRyxHQUFBO01BQVc7TUFDdEIsTUFBQUYsS0FBQSxHQUFjRyxJQUFJLENBQUFDLFdBQVksQ0FBQUMsU0FBVSxDQUFDckMsS0FBSyxDQUFBZ0MsS0FBTSxDQUFDO01BQ3JELE1BQUFNLElBQUEsR0FBYU4sS0FBSyxDQUFBTyxPQUFpQyxHQUF0QlAsS0FBSyxDQUFBTSxJQUFpQixHQUF0Q0UsU0FBc0M7TUFDbkRULEVBQUEsR0FBTztRQUFBSSxJQUFBO1FBQUFILEtBQUE7UUFBQVMsa0JBQUEsRUFHZU4sSUFBSSxDQUFBTyxjQUFlLENBQUNKLElBQUksQ0FBQztRQUFBSyxpQ0FBQSxFQUUzQ1IsSUFBSSxDQUFBUyw2QkFBc0MsR0FBTE4sSUFBSSxDQUFDO1FBQUFPLG9CQUFBLEVBQ3RCVixJQUFJLENBQUFVLG9CQUF5QixHQUFRLENBQUMsSUFBdEM7TUFDeEIsQ0FBQztJQUFBO0lBQUE3QixDQUFBLE1BQUFoQixLQUFBLENBQUFnQyxLQUFBO0lBQUFoQixDQUFBLE1BQUFoQixLQUFBLENBQUFpQyxJQUFBO0lBQUFqQixDQUFBLE1BQUFkLEtBQUE7SUFBQWMsQ0FBQSxNQUFBZSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBZixDQUFBO0VBQUE7RUFiSCxNQUFBOEIsTUFBQSxHQUFlZixFQWNHO0VBRWxCLElBQUksQ0FBQ2UsTUFBTTtJQUVUdEQsUUFBUSxDQUNOLElBQUl1RCxLQUFLLENBQ1A3QyxLQUFLLEdBQUwsUUFDWUYsS0FBSyxDQUFBaUMsSUFBSyxZQUMrQixHQUZyRCxxQ0FFeUNqQyxLQUFLLENBQUFpQyxJQUFLLEVBQ3JELENBQ0YsQ0FBQztJQUFBLE9BQ00sSUFBSTtFQUFBO0VBR2I7SUFBQUUsSUFBQSxFQUFBYSxNQUFBO0lBQUFoQixLQUFBLEVBQUFpQixPQUFBO0lBQUFSLGtCQUFBO0lBQUFFLGlDQUFBO0lBQUFFO0VBQUEsSUFNSUMsTUFBTTtFQUFBLElBQUFJLEVBQUE7RUFBQSxJQUFBbEMsQ0FBQSxRQUFBTCxPQUFBLENBQUF3QyxrQkFBQSxJQUFBbkMsQ0FBQSxRQUFBaEIsS0FBQSxDQUFBd0IsRUFBQTtJQUVTMEIsRUFBQSxHQUFBdkMsT0FBTyxDQUFBd0Msa0JBQW1CLENBQUFDLEdBQUksQ0FBQ3BELEtBQUssQ0FBQXdCLEVBQUcsQ0FBQztJQUFBUixDQUFBLE1BQUFMLE9BQUEsQ0FBQXdDLGtCQUFBO0lBQUFuQyxDQUFBLE1BQUFoQixLQUFBLENBQUF3QixFQUFBO0lBQUFSLENBQUEsTUFBQWtDLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFsQyxDQUFBO0VBQUE7RUFBM0QsTUFBQXFDLFVBQUEsR0FBbUJILEVBQXdDO0VBQUEsSUFBQUksRUFBQTtFQUFBLElBQUF0QyxDQUFBLFFBQUFYLG9CQUFBLElBQUFXLENBQUEsUUFBQXFDLFVBQUEsSUFBQXJDLENBQUEsUUFBQWhCLEtBQUEsQ0FBQXdCLEVBQUE7SUFDMUM4QixFQUFBLElBQUNqRCxvQkFBb0IsQ0FBQStDLEdBQUksQ0FBQ3BELEtBQUssQ0FBQXdCLEVBQUcsQ0FBZ0IsSUFBbEQsQ0FBd0M2QixVQUFVO0lBQUFyQyxDQUFBLE1BQUFYLG9CQUFBO0lBQUFXLENBQUEsTUFBQXFDLFVBQUE7SUFBQXJDLENBQUEsTUFBQWhCLEtBQUEsQ0FBQXdCLEVBQUE7SUFBQVIsQ0FBQSxPQUFBc0MsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQXRDLENBQUE7RUFBQTtFQUFuRSxNQUFBdUMsUUFBQSxHQUFpQkQsRUFBa0Q7RUFDbkUsTUFBQUUsc0JBQUEsR0FBK0JuQyxvQkFBb0IsRUFBQW9DLFNBQVcsS0FBS3pELEtBQUssQ0FBQXdCLEVBQUc7RUFFM0UsSUFBSXFCLG9CQUFvQjtJQUN0QixJQUFJVSxRQUFzQixJQUF0QkYsVUFBc0I7TUFBQSxPQUFTLElBQUk7SUFBQTtJQUFBLElBQUFLLEVBQUE7SUFBQSxJQUFBMUMsQ0FBQSxTQUFBTix1QkFBQSxJQUFBTSxDQUFBLFNBQUFILGdCQUFBLElBQUFHLENBQUEsU0FBQUwsT0FBQSxJQUFBSyxDQUFBLFNBQUFoQixLQUFBLENBQUF3QixFQUFBLElBQUFSLENBQUEsU0FBQVQsMEJBQUEsSUFBQVMsQ0FBQSxTQUFBRSxZQUFBLElBQUFGLENBQUEsU0FBQWdDLE1BQUEsSUFBQWhDLENBQUEsU0FBQWQsS0FBQSxJQUFBYyxDQUFBLFNBQUFaLE9BQUE7TUFHbENzRCxFQUFBLEdBQUFDLDRCQUE0QixDQUMzQnhCLE1BQUksRUFDSmpDLEtBQUssRUFDTFMsT0FBTyxFQUNQWCxLQUFLLENBQUF3QixFQUFHLEVBQ1JqQiwwQkFBMEIsRUFDMUI7UUFBQUgsT0FBQTtRQUFBTSx1QkFBQTtRQUFBRztNQUFxRCxDQUFDLEVBQ3RESyxZQUNGLENBQUM7TUFBQUYsQ0FBQSxPQUFBTix1QkFBQTtNQUFBTSxDQUFBLE9BQUFILGdCQUFBO01BQUFHLENBQUEsT0FBQUwsT0FBQTtNQUFBSyxDQUFBLE9BQUFoQixLQUFBLENBQUF3QixFQUFBO01BQUFSLENBQUEsT0FBQVQsMEJBQUE7TUFBQVMsQ0FBQSxPQUFBRSxZQUFBO01BQUFGLENBQUEsT0FBQWdDLE1BQUE7TUFBQWhDLENBQUEsT0FBQWQsS0FBQTtNQUFBYyxDQUFBLE9BQUFaLE9BQUE7TUFBQVksQ0FBQSxPQUFBMEMsRUFBQTtJQUFBO01BQUFBLEVBQUEsR0FBQTFDLENBQUE7SUFBQTtJQUFBLElBQUE0QyxFQUFBO0lBQUEsSUFBQTVDLENBQUEsU0FBQUksRUFBQSxJQUFBSixDQUFBLFNBQUEwQyxFQUFBO01BVEhFLEVBQUEsSUFBQyxHQUFHLENBQWUsYUFBUSxDQUFSLFFBQVEsQ0FBTyxLQUFNLENBQU4sTUFBTSxDQUFrQnhDLGVBQUUsQ0FBRkEsR0FBQyxDQUFDLENBQ3pELENBQUFzQyxFQVFELENBQ0YsRUFWQyxHQUFHLENBVUU7TUFBQTFDLENBQUEsT0FBQUksRUFBQTtNQUFBSixDQUFBLE9BQUEwQyxFQUFBO01BQUExQyxDQUFBLE9BQUE0QyxFQUFBO0lBQUE7TUFBQUEsRUFBQSxHQUFBNUMsQ0FBQTtJQUFBO0lBQUEsT0FWTjRDLEVBVU07RUFBQTtFQUlWLElBQUluQixrQkFBa0IsS0FBSyxFQUFFO0lBQUEsT0FDcEIsSUFBSTtFQUFBO0VBQ1osSUFBQWlCLEVBQUE7RUFBQSxJQUFBMUMsQ0FBQSxTQUFBYixRQUFBLElBQUFhLENBQUEsU0FBQWlDLE9BQUEsQ0FBQVgsSUFBQSxJQUFBdEIsQ0FBQSxTQUFBaUMsT0FBQSxDQUFBVixPQUFBLElBQUF2QixDQUFBLFNBQUFHLEtBQUEsSUFBQUgsQ0FBQSxTQUFBZ0MsTUFBQSxJQUFBaEMsQ0FBQSxTQUFBWixPQUFBO0lBRThCc0QsRUFBQSxHQUFBMUIsT0FBSyxDQUFBTyxPQUU1QixHQURKc0Isb0JBQW9CLENBQUMxQixNQUFJLEVBQUVILE9BQUssQ0FBQU0sSUFBSyxFQUFFO01BQUFuQixLQUFBO01BQUFmLE9BQUE7TUFBQUQ7SUFBMkIsQ0FDL0QsQ0FBQyxHQUZ1QixJQUV2QjtJQUFBYSxDQUFBLE9BQUFiLFFBQUE7SUFBQWEsQ0FBQSxPQUFBaUMsT0FBQSxDQUFBWCxJQUFBO0lBQUF0QixDQUFBLE9BQUFpQyxPQUFBLENBQUFWLE9BQUE7SUFBQXZCLENBQUEsT0FBQUcsS0FBQTtJQUFBSCxDQUFBLE9BQUFnQyxNQUFBO0lBQUFoQyxDQUFBLE9BQUFaLE9BQUE7SUFBQVksQ0FBQSxPQUFBMEMsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQTFDLENBQUE7RUFBQTtFQUZSLE1BQUE4QyxzQkFBQSxHQUErQkosRUFFdkI7RUFDUixJQUFJSSxzQkFBc0IsS0FBSyxJQUFJO0lBQUEsT0FDMUIsSUFBSTtFQUFBO0VBT0UsTUFBQUYsRUFBQSxHQUFBM0QsU0FBUyxHQUFULENBQWlCLEdBQWpCLENBQWlCO0VBUWQsTUFBQThELEVBQUEsR0FBQWxGLFdBQVcsQ0FBQzRELGtCQUFrQixDQUFDLElBQUloQyxhQUFhLEdBQWIsQ0FBcUIsR0FBckIsQ0FBcUIsQ0FBQztFQUFBLElBQUF1RCxFQUFBO0VBQUEsSUFBQWhELENBQUEsU0FBQXVDLFFBQUEsSUFBQXZDLENBQUEsU0FBQXFDLFVBQUEsSUFBQXJDLENBQUEsU0FBQUwsT0FBQSxDQUFBc0QsaUJBQUEsSUFBQWpELENBQUEsU0FBQWhCLEtBQUEsQ0FBQXdCLEVBQUEsSUFBQVIsQ0FBQSxTQUFBUixhQUFBLElBQUFRLENBQUEsU0FBQVAsYUFBQTtJQUVsRXVELEVBQUEsR0FBQXZELGFBY0csS0FiRDhDLFFBQVEsR0FDUCxDQUFDLEdBQUcsQ0FBVyxRQUFDLENBQUQsR0FBQyxDQUNkLENBQUMsSUFBSSxDQUFXQSxRQUFRLENBQVJBLFNBQU8sQ0FBQyxDQUFHM0UsYUFBVyxDQUFFLEVBQXZDLElBQUksQ0FDUCxFQUZDLEdBQUcsQ0FZTCxHQUxDLENBQUMsYUFBYSxDQUNHNEIsYUFBYSxDQUFiQSxjQUFZLENBQUMsQ0FDZCxZQUFXLENBQVgsRUFBQzZDLFVBQVMsQ0FBQyxDQUNoQixPQUF1QyxDQUF2QyxDQUFBMUMsT0FBTyxDQUFBc0QsaUJBQWtCLENBQUFiLEdBQUksQ0FBQ3BELEtBQUssQ0FBQXdCLEVBQUcsRUFBQyxHQUVsRDtJQUFBUixDQUFBLE9BQUF1QyxRQUFBO0lBQUF2QyxDQUFBLE9BQUFxQyxVQUFBO0lBQUFyQyxDQUFBLE9BQUFMLE9BQUEsQ0FBQXNELGlCQUFBO0lBQUFqRCxDQUFBLE9BQUFoQixLQUFBLENBQUF3QixFQUFBO0lBQUFSLENBQUEsT0FBQVIsYUFBQTtJQUFBUSxDQUFBLE9BQUFQLGFBQUE7SUFBQU8sQ0FBQSxPQUFBZ0QsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWhELENBQUE7RUFBQTtFQU9FLE1BQUFrRCxFQUFBLEdBQUF2QixpQ0FBaUMsR0FBakMsYUFBNkQsR0FBN0RILFNBQTZEO0VBQUEsSUFBQTJCLEVBQUE7RUFBQSxJQUFBbkQsQ0FBQSxTQUFBa0QsRUFBQSxJQUFBbEQsQ0FBQSxTQUFBeUIsa0JBQUEsSUFBQXpCLENBQUEsU0FBQTJCLGlDQUFBO0lBTm5Fd0IsRUFBQSxJQUFDLEdBQUcsQ0FBYSxVQUFDLENBQUQsR0FBQyxDQUNoQixDQUFDLElBQUksQ0FDSCxJQUFJLENBQUosS0FBRyxDQUFDLENBQ0MsSUFBYyxDQUFkLGNBQWMsQ0FDRnhCLGVBQWlDLENBQWpDQSxrQ0FBZ0MsQ0FBQyxDQUVoRCxLQUE2RCxDQUE3RCxDQUFBdUIsRUFBNEQsQ0FBQyxDQUc5RHpCLG1CQUFpQixDQUNwQixFQVRDLElBQUksQ0FVUCxFQVhDLEdBQUcsQ0FXRTtJQUFBekIsQ0FBQSxPQUFBa0QsRUFBQTtJQUFBbEQsQ0FBQSxPQUFBeUIsa0JBQUE7SUFBQXpCLENBQUEsT0FBQTJCLGlDQUFBO0lBQUEzQixDQUFBLE9BQUFtRCxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBbkQsQ0FBQTtFQUFBO0VBQUEsSUFBQW9ELEdBQUE7RUFBQSxJQUFBcEQsQ0FBQSxTQUFBOEMsc0JBQUE7SUFDTE0sR0FBQSxHQUFBTixzQkFBc0IsS0FBSyxFQUkzQixJQUhDLENBQUMsR0FBRyxDQUFVLFFBQVEsQ0FBUixRQUFRLENBQ3BCLENBQUMsSUFBSSxDQUFDLENBQUVBLHVCQUFxQixDQUFFLENBQUMsRUFBL0IsSUFBSSxDQUNQLEVBRkMsR0FBRyxDQUdMO0lBQUE5QyxDQUFBLE9BQUE4QyxzQkFBQTtJQUFBOUMsQ0FBQSxPQUFBb0QsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXBELENBQUE7RUFBQTtFQUFBLElBQUFxRCxHQUFBO0VBQUEsSUFBQXJELENBQUEsU0FBQWlDLE9BQUEsQ0FBQVgsSUFBQSxJQUFBdEIsQ0FBQSxTQUFBaUMsT0FBQSxDQUFBVixPQUFBLElBQUF2QixDQUFBLFNBQUFnQyxNQUFBO0lBRUFxQixHQUFBLEdBQUFyQyxPQUFLLENBQUFPLE9BQ2lCLElBQXJCSixNQUFJLENBQUFtQyxnQkFDNkIsSUFBakNuQyxNQUFJLENBQUFtQyxnQkFBaUIsQ0FBQ3RDLE9BQUssQ0FBQU0sSUFBSyxDQUFDO0lBQUF0QixDQUFBLE9BQUFpQyxPQUFBLENBQUFYLElBQUE7SUFBQXRCLENBQUEsT0FBQWlDLE9BQUEsQ0FBQVYsT0FBQTtJQUFBdkIsQ0FBQSxPQUFBZ0MsTUFBQTtJQUFBaEMsQ0FBQSxPQUFBcUQsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXJELENBQUE7RUFBQTtFQUFBLElBQUF1RCxHQUFBO0VBQUEsSUFBQXZELENBQUEsU0FBQW9ELEdBQUEsSUFBQXBELENBQUEsU0FBQXFELEdBQUEsSUFBQXJELENBQUEsU0FBQStDLEVBQUEsSUFBQS9DLENBQUEsU0FBQWdELEVBQUEsSUFBQWhELENBQUEsU0FBQW1ELEVBQUE7SUF4Q3JDSSxHQUFBLElBQUMsR0FBRyxDQUNZLGFBQUssQ0FBTCxLQUFLLENBQ1YsUUFBUSxDQUFSLFFBQVEsQ0FDUCxRQUF5RCxDQUF6RCxDQUFBUixFQUF3RCxDQUFDLENBRWxFLENBQUFDLEVBY0UsQ0FDSCxDQUFBRyxFQVdLLENBQ0osQ0FBQUMsR0FJRCxDQUVDLENBQUFDLEdBRWlDLENBQ3BDLEVBekNDLEdBQUcsQ0F5Q0U7SUFBQXJELENBQUEsT0FBQW9ELEdBQUE7SUFBQXBELENBQUEsT0FBQXFELEdBQUE7SUFBQXJELENBQUEsT0FBQStDLEVBQUE7SUFBQS9DLENBQUEsT0FBQWdELEVBQUE7SUFBQWhELENBQUEsT0FBQW1ELEVBQUE7SUFBQW5ELENBQUEsT0FBQXVELEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUF2RCxDQUFBO0VBQUE7RUFBQSxJQUFBd0QsR0FBQTtFQUFBLElBQUF4RCxDQUFBLFNBQUFOLHVCQUFBLElBQUFNLENBQUEsU0FBQWEsZ0JBQUEsSUFBQWIsQ0FBQSxTQUFBYyxvQkFBQSxJQUFBZCxDQUFBLFNBQUF1QyxRQUFBLElBQUF2QyxDQUFBLFNBQUFxQyxVQUFBLElBQUFyQyxDQUFBLFNBQUFILGdCQUFBLElBQUFHLENBQUEsU0FBQXdDLHNCQUFBLElBQUF4QyxDQUFBLFNBQUFMLE9BQUEsSUFBQUssQ0FBQSxTQUFBaEIsS0FBQSxDQUFBd0IsRUFBQSxJQUFBUixDQUFBLFNBQUFULDBCQUFBLElBQUFTLENBQUEsU0FBQUUsWUFBQSxJQUFBRixDQUFBLFNBQUFnQyxNQUFBLElBQUFoQyxDQUFBLFNBQUFkLEtBQUEsSUFBQWMsQ0FBQSxTQUFBWixPQUFBO0lBQ0xvRSxHQUFBLElBQUNuQixVQUNTLElBRFYsQ0FDRUUsUUEyQkMsS0ExQkR6QixvQkFBb0IsR0FDbkIsQ0FBQyxlQUFlLENBQVMsTUFBQyxDQUFELEdBQUMsQ0FDeEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFSLEtBQU8sQ0FBQyxDQUNYLENBQUFELGdCQUFnQixHQUFoQixnQ0FFbUMsR0FGbkMsZ0NBRWtDLENBQ3JDLEVBSkMsSUFBSSxDQUtQLEVBTkMsZUFBZSxDQXlCakIsR0FsQkcyQixzQkFBc0IsR0FDeEIsQ0FBQyxlQUFlLENBQVMsTUFBQyxDQUFELEdBQUMsQ0FDeEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFSLEtBQU8sQ0FBQyxDQUFDLHVCQUF1QixFQUFyQyxJQUFJLENBQ1AsRUFGQyxlQUFlLENBaUJqQixHQWJDRyw0QkFBNEIsQ0FDMUJ4QixNQUFJLEVBQ0pqQyxLQUFLLEVBQ0xTLE9BQU8sRUFDUFgsS0FBSyxDQUFBd0IsRUFBRyxFQUNSakIsMEJBQTBCLEVBQzFCO01BQUFILE9BQUE7TUFBQU0sdUJBQUE7TUFBQUc7SUFJQSxDQUFDLEVBQ0RLLFlBRUosQ0FBRTtJQUFBRixDQUFBLE9BQUFOLHVCQUFBO0lBQUFNLENBQUEsT0FBQWEsZ0JBQUE7SUFBQWIsQ0FBQSxPQUFBYyxvQkFBQTtJQUFBZCxDQUFBLE9BQUF1QyxRQUFBO0lBQUF2QyxDQUFBLE9BQUFxQyxVQUFBO0lBQUFyQyxDQUFBLE9BQUFILGdCQUFBO0lBQUFHLENBQUEsT0FBQXdDLHNCQUFBO0lBQUF4QyxDQUFBLE9BQUFMLE9BQUE7SUFBQUssQ0FBQSxPQUFBaEIsS0FBQSxDQUFBd0IsRUFBQTtJQUFBUixDQUFBLE9BQUFULDBCQUFBO0lBQUFTLENBQUEsT0FBQUUsWUFBQTtJQUFBRixDQUFBLE9BQUFnQyxNQUFBO0lBQUFoQyxDQUFBLE9BQUFkLEtBQUE7SUFBQWMsQ0FBQSxPQUFBWixPQUFBO0lBQUFZLENBQUEsT0FBQXdELEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUF4RCxDQUFBO0VBQUE7RUFBQSxJQUFBeUQsR0FBQTtFQUFBLElBQUF6RCxDQUFBLFNBQUF1QyxRQUFBLElBQUF2QyxDQUFBLFNBQUFxQyxVQUFBLElBQUFyQyxDQUFBLFNBQUFnQyxNQUFBO0lBQ0h5QixHQUFBLElBQUNwQixVQUFzQixJQUF2QkUsUUFBMkQsSUFBaENtQiwwQkFBMEIsQ0FBQ3ZDLE1BQUksQ0FBQztJQUFBbkIsQ0FBQSxPQUFBdUMsUUFBQTtJQUFBdkMsQ0FBQSxPQUFBcUMsVUFBQTtJQUFBckMsQ0FBQSxPQUFBZ0MsTUFBQTtJQUFBaEMsQ0FBQSxPQUFBeUQsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXpELENBQUE7RUFBQTtFQUFBLElBQUEyRCxHQUFBO0VBQUEsSUFBQTNELENBQUEsU0FBQXVELEdBQUEsSUFBQXZELENBQUEsU0FBQXdELEdBQUEsSUFBQXhELENBQUEsU0FBQXlELEdBQUE7SUF4RTlERSxHQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQ3pCLENBQUFKLEdBeUNLLENBQ0osQ0FBQUMsR0E0QkUsQ0FDRixDQUFBQyxHQUEwRCxDQUM3RCxFQXpFQyxHQUFHLENBeUVFO0lBQUF6RCxDQUFBLE9BQUF1RCxHQUFBO0lBQUF2RCxDQUFBLE9BQUF3RCxHQUFBO0lBQUF4RCxDQUFBLE9BQUF5RCxHQUFBO0lBQUF6RCxDQUFBLE9BQUEyRCxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBM0QsQ0FBQTtFQUFBO0VBQUEsSUFBQTRELEdBQUE7RUFBQSxJQUFBNUQsQ0FBQSxTQUFBSSxFQUFBLElBQUFKLENBQUEsU0FBQTJELEdBQUEsSUFBQTNELENBQUEsU0FBQTRDLEVBQUE7SUFoRlJnQixHQUFBLElBQUMsR0FBRyxDQUNZLGFBQUssQ0FBTCxLQUFLLENBQ0osY0FBZSxDQUFmLGVBQWUsQ0FDbkIsU0FBaUIsQ0FBakIsQ0FBQWhCLEVBQWdCLENBQUMsQ0FDdEIsS0FBTSxDQUFOLE1BQU0sQ0FDS3hDLGVBQUUsQ0FBRkEsR0FBQyxDQUFDLENBRW5CLENBQUF1RCxHQXlFSyxDQUNQLEVBakZDLEdBQUcsQ0FpRkU7SUFBQTNELENBQUEsT0FBQUksRUFBQTtJQUFBSixDQUFBLE9BQUEyRCxHQUFBO0lBQUEzRCxDQUFBLE9BQUE0QyxFQUFBO0lBQUE1QyxDQUFBLE9BQUE0RCxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBNUQsQ0FBQTtFQUFBO0VBQUEsT0FqRk40RCxHQWlGTTtBQUFBO0FBak1ILFNBQUFoRCxPQUFBaUQsT0FBQTtFQUFBLE9BNkJNLENBQUMsQ0FBQ0MsT0FBSyxDQUFBQyxxQkFBc0IsQ0FBQUMsc0JBQXVCO0FBQUE7QUE3QjFELFNBQUF0RCxPQUFBdUQsT0FBQTtFQUFBLE9Bc0JNSCxPQUFLLENBQUFDLHFCQUFzQixDQUFBRyxJQUFLO0FBQUE7QUF0QnRDLFNBQUE1RCxNQUFBd0QsS0FBQTtFQUFBLE9Ba0JNQSxLQUFLLENBQUF6RCxvQkFBcUI7QUFBQTtBQW1MdkMsU0FBU3dDLG9CQUFvQkEsQ0FDM0IxQixJQUFJLEVBQUVoRCxJQUFJLEVBQ1Y2QyxLQUFLLEVBQUUsT0FBTyxFQUNkO0VBQ0ViLEtBQUs7RUFDTGYsT0FBTztFQUNQRDtBQUMyRCxDQUE1RCxFQUFFO0VBQUVnQixLQUFLLEVBQUV6QyxTQUFTO0VBQUUwQixPQUFPLEVBQUUsT0FBTztFQUFFRCxRQUFRLEVBQUV4QixPQUFPLEVBQUU7QUFBQyxDQUFDLENBQy9ELEVBQUVKLEtBQUssQ0FBQzRHLFNBQVMsQ0FBQztFQUNqQixJQUFJO0lBQ0YsTUFBTXJDLE1BQU0sR0FBR1gsSUFBSSxDQUFDQyxXQUFXLENBQUNDLFNBQVMsQ0FBQ0wsS0FBSyxDQUFDO0lBQ2hELElBQUksQ0FBQ2MsTUFBTSxDQUFDUCxPQUFPLEVBQUU7TUFDbkIsT0FBTyxFQUFFO0lBQ1g7SUFDQSxPQUFPSixJQUFJLENBQUMwQixvQkFBb0IsQ0FBQ2YsTUFBTSxDQUFDUixJQUFJLEVBQUU7TUFBRW5CLEtBQUs7TUFBRWYsT0FBTztNQUFFRDtJQUFTLENBQUMsQ0FBQztFQUM3RSxDQUFDLENBQUMsT0FBT2lGLEtBQUssRUFBRTtJQUNkNUYsUUFBUSxDQUNOLElBQUl1RCxLQUFLLENBQUMsd0NBQXdDWixJQUFJLENBQUNGLElBQUksS0FBS21ELEtBQUssRUFBRSxDQUN6RSxDQUFDO0lBQ0QsT0FBTyxFQUFFO0VBQ1g7QUFDRjtBQUVBLFNBQVN6Qiw0QkFBNEJBLENBQ25DeEIsSUFBSSxFQUFFaEQsSUFBSSxFQUNWZSxLQUFLLEVBQUViLEtBQUssRUFDWnNCLE9BQU8sRUFBRUMsVUFBVSxDQUFDLE9BQU9uQixtQkFBbUIsQ0FBQyxFQUMvQzRGLFNBQVMsRUFBRSxNQUFNLEVBQ2pCOUUsMEJBQTBCLEVBQUVqQixlQUFlLEVBQUUsRUFDN0M7RUFDRWMsT0FBTztFQUNQTSx1QkFBdUI7RUFDdkJHO0FBS0YsQ0FKQyxFQUFFO0VBQ0RULE9BQU8sRUFBRSxPQUFPO0VBQ2hCTSx1QkFBdUIsQ0FBQyxFQUFFLE1BQU07RUFDaENHLGdCQUFnQixDQUFDLEVBQUUsT0FBTztBQUM1QixDQUFDLEVBQ0RLLFlBQVksRUFBRTtFQUFFb0UsT0FBTyxFQUFFLE1BQU07RUFBRUMsSUFBSSxFQUFFLE1BQU07QUFBQyxDQUFDLENBQ2hELEVBQUVoSCxLQUFLLENBQUM0RyxTQUFTLENBQUM7RUFDakIsTUFBTUssb0JBQW9CLEdBQUdqRiwwQkFBMEIsQ0FBQ2tGLE1BQU0sQ0FDNUQsQ0FBQ0MsR0FBRyxDQUFDLEVBQUVBLEdBQUcsSUFBSXBHLGVBQWUsQ0FBQ0YsZ0JBQWdCLENBQUMsSUFDN0NzRyxHQUFHLENBQUNwRCxJQUFJLENBQUNxRCxJQUFJLEtBQUssZUFDdEIsQ0FBQztFQUNELElBQUk7SUFDRixNQUFNQyxZQUFZLEdBQ2hCekQsSUFBSSxDQUFDd0IsNEJBQTRCLEdBQUc2QixvQkFBb0IsRUFBRTtNQUN4RHRGLEtBQUs7TUFDTEUsT0FBTztNQUNQYyxZQUFZO01BQ1pSLHVCQUF1QixFQUFFQSx1QkFBdUIsSUFBSSxDQUFDO01BQ3JERztJQUNGLENBQUMsQ0FBQyxJQUFJLElBQUk7SUFDWixPQUNFO0FBQ04sUUFBUSxDQUFDLG1CQUFtQjtBQUM1QixVQUFVLENBQUMsbUJBQW1CLENBQ2xCLFNBQVMsQ0FBQyxZQUFZLENBQ3RCLE9BQU8sQ0FBQyxDQUFDRixPQUFPLENBQUMsQ0FDakIsU0FBUyxDQUFDLENBQUMwRSxTQUFTLENBQUMsQ0FDckIsT0FBTyxDQUFDLENBQUNqRixPQUFPLENBQUMsQ0FDakIsZ0JBQWdCLENBQUMsQ0FBQ1MsZ0JBQWdCLENBQUM7QUFFL0MsUUFBUSxFQUFFLG1CQUFtQjtBQUM3QixRQUFRLENBQUMrRSxZQUFZO0FBQ3JCLE1BQU0sR0FBRztFQUVQLENBQUMsQ0FBQyxPQUFPUixLQUFLLEVBQUU7SUFDZDVGLFFBQVEsQ0FDTixJQUFJdUQsS0FBSyxDQUNQLGlEQUFpRFosSUFBSSxDQUFDRixJQUFJLEtBQUttRCxLQUFLLEVBQ3RFLENBQ0YsQ0FBQztJQUNELE9BQU8sSUFBSTtFQUNiO0FBQ0Y7QUFFQSxTQUFTViwwQkFBMEJBLENBQUN2QyxJQUFJLEVBQUVoRCxJQUFJLENBQUMsRUFBRVosS0FBSyxDQUFDNEcsU0FBUyxDQUFDO0VBQy9ELElBQUk7SUFDRixPQUFPaEQsSUFBSSxDQUFDdUMsMEJBQTBCLEdBQUcsQ0FBQztFQUM1QyxDQUFDLENBQUMsT0FBT1UsS0FBSyxFQUFFO0lBQ2Q1RixRQUFRLENBQ04sSUFBSXVELEtBQUssQ0FDUCwrQ0FBK0NaLElBQUksQ0FBQ0YsSUFBSSxLQUFLbUQsS0FBSyxFQUNwRSxDQUNGLENBQUM7SUFDRCxPQUFPLElBQUk7RUFDYjtBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -5,7 +5,7 @@ import { isEnvTruthy } from 'src/utils/envUtils.js';
|
|
|
5
5
|
import { useStartupNotification } from './useStartupNotification.js';
|
|
6
6
|
const NPM_DEPRECATION_MESSAGE = 'Claude Code has switched from npm to native installer. Run `claude install` or see https://docs.anthropic.com/en/docs/claude-code/getting-started for more options.';
|
|
7
7
|
export function useNpmDeprecationNotification() {
|
|
8
|
-
useStartupNotification(
|
|
8
|
+
useStartupNotification(async () => null);
|
|
9
9
|
}
|
|
10
10
|
async function _temp() {
|
|
11
11
|
if (isInBundledMode() || isEnvTruthy(process.env.DISABLE_INSTALLATION_CHECKS)) {
|
|
@@ -23,4 +23,4 @@ async function _temp() {
|
|
|
23
23
|
priority: "high"
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0luQnVuZGxlZE1vZGUiLCJnZXRDdXJyZW50SW5zdGFsbGF0aW9uVHlwZSIsImlzRW52VHJ1dGh5IiwidXNlU3RhcnR1cE5vdGlmaWNhdGlvbiIsIk5QTV9ERVBSRUNBVElPTl9NRVNTQUdFIiwidXNlTnBtRGVwcmVjYXRpb25Ob3RpZmljYXRpb24iLCJfdGVtcCIsInByb2Nlc3MiLCJlbnYiLCJESVNBQkxFX0lOU1RBTExBVElPTl9DSEVDS1MiLCJpbnN0YWxsYXRpb25UeXBlIiwidGltZW91dE1zIiwia2V5IiwidGV4dCIsImNvbG9yIiwicHJpb3JpdHkiXSwic291cmNlcyI6WyJ1c2VOcG1EZXByZWNhdGlvbk5vdGlmaWNhdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNJbkJ1bmRsZWRNb2RlIH0gZnJvbSAnc3JjL3V0aWxzL2J1bmRsZWRNb2RlLmpzJ1xuaW1wb3J0IHsgZ2V0Q3VycmVudEluc3RhbGxhdGlvblR5cGUgfSBmcm9tICdzcmMvdXRpbHMvZG9jdG9yRGlhZ25vc3RpYy5qcydcbmltcG9ydCB7IGlzRW52VHJ1dGh5IH0gZnJvbSAnc3JjL3V0aWxzL2VudlV0aWxzLmpzJ1xuaW1wb3J0IHsgdXNlU3RhcnR1cE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vdXNlU3RhcnR1cE5vdGlmaWNhdGlvbi5qcydcblxuY29uc3QgTlBNX0RFUFJFQ0FUSU9OX01FU1NBR0UgPVxuICAnQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIGZyb20gbnBtIHRvIG5hdGl2ZSBpbnN0YWxsZXIuIFJ1biBgY2xhdWRlIGluc3RhbGxgIG9yIHNlZSBodHRwczovL2RvY3MuYW50aHJvcGljLmNvbS9lbi9kb2NzL2NsYXVkZS1jb2RlL2dldHRpbmctc3RhcnRlZCBmb3IgbW9yZSBvcHRpb25zLidcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU5wbURlcHJlY2F0aW9uTm90aWZpY2F0aW9uKCk6IHZvaWQge1xuICB1c2VTdGFydHVwTm90aWZpY2F0aW9uKGFzeW5jICgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc0luQnVuZGxlZE1vZGUoKSB8fFxuICAgICAgaXNFbnZUcnV0aHkocHJvY2Vzcy5lbnYuRElTQUJMRV9JTlNUQUxMQVRJT05fQ0hFQ0tTKVxuICAgICkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgaW5zdGFsbGF0aW9uVHlwZSA9IGF3YWl0IGdldEN1cnJlbnRJbnN0YWxsYXRpb25UeXBlKClcbiAgICBpZiAoaW5zdGFsbGF0aW9uVHlwZSA9PT0gJ2RldmVsb3BtZW50JykgcmV0dXJuIG51bGxcbiAgICByZXR1cm4ge1xuICAgICAgdGltZW91dE1zOiAxNTAwMCxcbiAgICAgIGtleTogJ25wbS1kZXByZWNhdGlvbi13YXJuaW5nJyxcbiAgICAgIHRleHQ6IE5QTV9ERVBSRUNBVElPTl9NRVNTQUdFLFxuICAgICAgY29sb3I6ICd3YXJuaW5nJyxcbiAgICAgIHByaW9yaXR5OiAnaGlnaCcsXG4gICAgfVxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxlQUFlLFFBQVEsMEJBQTBCO0FBQzFELFNBQVNDLDBCQUEwQixRQUFRLCtCQUErQjtBQUMxRSxTQUFTQyxXQUFXLFFBQVEsdUJBQXVCO0FBQ25ELFNBQVNDLHNCQUFzQixRQUFRLDZCQUE2QjtBQUVwRSxNQUFNQyx1QkFBdUIsR0FDM0IscUtBQXFLO0FBRXZLLE9BQU8sU0FBQUMsOEJBQUE7RUFDTEYsc0JBQXNCLENBQUNHLEtBZ0J0QixDQUFDO0FBQUE7QUFqQkcsZUFBQUEsTUFBQTtFQUVILElBQ0VOLGVBQWUsQ0FDb0MsQ0FBQyxJQUFwREUsV0FBVyxDQUFDSyxPQUFPLENBQUFDLEdBQUksQ0FBQUMsMkJBQTRCLENBQUM7SUFBQSxPQUU3QyxJQUFJO0VBQUE7RUFFYixNQUFBQyxnQkFBQSxHQUF5QixNQUFNVCwwQkFBMEIsQ0FBQyxDQUFDO0VBQzNELElBQUlTLGdCQUFnQixLQUFLLGFBQWE7SUFBQSxPQUFTLElBQUk7RUFBQTtFQUFBLE9BQzVDO0lBQUFDLFNBQUEsRUFDTSxLQUFLO0lBQUFDLEdBQUEsRUFDWCx5QkFBeUI7SUFBQUMsSUFBQSxFQUN4QlQsdUJBQXVCO0lBQUFVLEtBQUEsRUFDdEIsU0FBUztJQUFBQyxRQUFBLEVBQ047RUFDWixDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0luQnVuZGxlZE1vZGUiLCJnZXRDdXJyZW50SW5zdGFsbGF0aW9uVHlwZSIsImlzRW52VHJ1dGh5IiwidXNlU3RhcnR1cE5vdGlmaWNhdGlvbiIsIk5QTV9ERVBSRUNBVElPTl9NRVNTQUdFIiwidXNlTnBtRGVwcmVjYXRpb25Ob3RpZmljYXRpb24iLCJfdGVtcCIsInByb2Nlc3MiLCJlbnYiLCJESVNBQkxFX0lOU1RBTExBVElPTl9DSEVDS1MiLCJpbnN0YWxsYXRpb25UeXBlIiwidGltZW91dE1zIiwia2V5IiwidGV4dCIsImNvbG9yIiwicHJpb3JpdHkiXSwic291cmNlcyI6WyJ1c2VOcG1EZXByZWNhdGlvbk5vdGlmaWNhdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNJbkJ1bmRsZWRNb2RlIH0gZnJvbSAnc3JjL3V0aWxzL2J1bmRsZWRNb2RlLmpzJ1xuaW1wb3J0IHsgZ2V0Q3VycmVudEluc3RhbGxhdGlvblR5cGUgfSBmcm9tICdzcmMvdXRpbHMvZG9jdG9yRGlhZ25vc3RpYy5qcydcbmltcG9ydCB7IGlzRW52VHJ1dGh5IH0gZnJvbSAnc3JjL3V0aWxzL2VudlV0aWxzLmpzJ1xuaW1wb3J0IHsgdXNlU3RhcnR1cE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vdXNlU3RhcnR1cE5vdGlmaWNhdGlvbi5qcydcblxuY29uc3QgTlBNX0RFUFJFQ0FUSU9OX01FU1NBR0UgPVxuICAnQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIGZyb20gbnBtIHRvIG5hdGl2ZSBpbnN0YWxsZXIuIFJ1biBgY2xhdWRlIGluc3RhbGxgIG9yIHNlZSBodHRwczovL2RvY3MuYW50aHJvcGljLmNvbS9lbi9kb2NzL2NsYXVkZS1jb2RlL2dldHRpbmctc3RhcnRlZCBmb3IgbW9yZSBvcHRpb25zLidcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU5wbURlcHJlY2F0aW9uTm90aWZpY2F0aW9uKCk6IHZvaWQge1xuICB1c2VTdGFydHVwTm90aWZpY2F0aW9uKGFzeW5jICgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc0luQnVuZGxlZE1vZGUoKSB8fFxuICAgICAgaXNFbnZUcnV0aHkocHJvY2Vzcy5lbnYuRElTQUJMRV9JTlNUQUxMQVRJT05fQ0hFQ0tTKVxuICAgICkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgaW5zdGFsbGF0aW9uVHlwZSA9IGF3YWl0IGdldEN1cnJlbnRJbnN0YWxsYXRpb25UeXBlKClcbiAgICBpZiAoaW5zdGFsbGF0aW9uVHlwZSA9PT0gJ2RldmVsb3BtZW50JykgcmV0dXJuIG51bGxcbiAgICByZXR1cm4ge1xuICAgICAgdGltZW91dE1zOiAxNTAwMCxcbiAgICAgIGtleTogJ25wbS1kZXByZWNhdGlvbi13YXJuaW5nJyxcbiAgICAgIHRleHQ6IE5QTV9ERVBSRUNBVElPTl9NRVNTQUdFLFxuICAgICAgY29sb3I6ICd3YXJuaW5nJyxcbiAgICAgIHByaW9yaXR5OiAnaGlnaCcsXG4gICAgfVxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxlQUFlLFFBQVEsMEJBQTBCO0FBQzFELFNBQVNDLDBCQUEwQixRQUFRLCtCQUErQjtBQUMxRSxTQUFTQyxXQUFXLFFBQVEsdUJBQXVCO0FBQ25ELFNBQVNDLHNCQUFzQixRQUFRLDZCQUE2QjtBQUVwRSxNQUFNQyx1QkFBdUIsR0FDM0IscUtBQXFLO0FBRXZLLE9BQU8sU0FBQUMsOEJBQUE7RUFDTEYsc0JBQXNCLENBQUNHLEtBZ0J0QixDQUFDO0FBQUE7QUFqQkcsZUFBQUEsTUFBQTtFQUVILElBQ0VOLGVBQWUsQ0FDb0MsQ0FBQyxJQUFwREUsV0FBVyxDQUFDSyxPQUFPLENBQUFDLEdBQUksQ0FBQUMsMkJBQTRCLENBQUM7SUFBQSxPQUU3QyxJQUFJO0VBQUE7RUFFYixNQUFBQyxnQkFBQSxHQUF5QixNQUFNVCwwQkFBMEIsQ0FBQyxDQUFDO0VBQzNELElBQUlTLGdCQUFnQixLQUFLLGFBQWE7SUFBQSxPQUFTLElBQUk7RUFBQTtFQUFBLE9BQzVDO0lBQUFDLFNBQUEsRUFDTSxLQUFLO0lBQUFDLEdBQUEsRUFDWCx5QkFBeUI7SUFBQUMsSUFBQSxFQUN4QlQsdUJBQXVCO0lBQUFVLEtBQUEsRUFDdEIsU0FBUztJQUFBQyxRQUFBLEVBQ047RUFDWixDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/src/main.tsx
CHANGED
|
@@ -1924,6 +1924,10 @@ async function run(): Promise<CommanderCommand> {
|
|
|
1924
1924
|
if (process.env.CLAUDE_CODE_ENTRYPOINT !== 'local-agent') {
|
|
1925
1925
|
initBuiltinPlugins();
|
|
1926
1926
|
initBundledSkills();
|
|
1927
|
+
const {
|
|
1928
|
+
registerSeedMarketplaces
|
|
1929
|
+
} = await import('./utils/plugins/marketplaceManager.js');
|
|
1930
|
+
await registerSeedMarketplaces();
|
|
1927
1931
|
}
|
|
1928
1932
|
const setupPromise = setup(preSetupCwd, permissionMode, allowDangerouslySkipPermissions, worktreeEnabled, worktreeName, tmuxEnabled, sessionId ? validateUuid(sessionId) : undefined, worktreePRNumber, messagingSocketPath);
|
|
1929
1933
|
const commandsPromise = worktreeEnabled ? null : getCommands(preSetupCwd);
|
package/src/query.ts
CHANGED
|
@@ -94,6 +94,11 @@ import { executePostSamplingHooks } from './utils/hooks/postSamplingHooks.js'
|
|
|
94
94
|
import { executeStopFailureHooks } from './utils/hooks.js'
|
|
95
95
|
import type { QuerySource } from './constants/querySource.js'
|
|
96
96
|
import { createDumpPromptsFetch } from './services/api/dumpPrompts.js'
|
|
97
|
+
import {
|
|
98
|
+
isDisabledOfficialClaudeModel,
|
|
99
|
+
runOfficialClaudeMainThreadBridge,
|
|
100
|
+
shouldUseOfficialClaudeBridge,
|
|
101
|
+
} from './services/api/officialClaudeBridge.js'
|
|
97
102
|
import { StreamingToolExecutor } from './services/tools/StreamingToolExecutor.js'
|
|
98
103
|
import { queryCheckpoint } from './utils/queryProfiler.js'
|
|
99
104
|
import { runTools } from './services/tools/toolOrchestration.js'
|
|
@@ -657,56 +662,81 @@ async function* queryLoop(
|
|
|
657
662
|
try {
|
|
658
663
|
let streamingFallbackOccured = false
|
|
659
664
|
queryCheckpoint('query_api_streaming_start')
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
665
|
+
if (isDisabledOfficialClaudeModel(currentModel)) {
|
|
666
|
+
yield createAssistantAPIErrorMessage({
|
|
667
|
+
content:
|
|
668
|
+
'Anthropic/Claude channel is disabled in this mumucc build. Use /model to switch to an enabled third-party profile.',
|
|
669
|
+
apiError: 'invalid_request',
|
|
670
|
+
})
|
|
671
|
+
return { reason: 'model_error' }
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
const bridgedMainThreadMessage = shouldUseOfficialClaudeBridge(
|
|
675
|
+
currentModel,
|
|
676
|
+
)
|
|
677
|
+
? await runOfficialClaudeMainThreadBridge({
|
|
678
|
+
model: currentModel,
|
|
679
|
+
systemPrompt: fullSystemPrompt,
|
|
680
|
+
messages: prependUserContext(messagesForQuery, userContext),
|
|
681
|
+
permissionMode,
|
|
682
|
+
maxTurns,
|
|
683
|
+
})
|
|
684
|
+
: null
|
|
685
|
+
|
|
686
|
+
const modelMessages = bridgedMainThreadMessage
|
|
687
|
+
? [bridgedMainThreadMessage]
|
|
688
|
+
: deps.callModel({
|
|
689
|
+
messages: prependUserContext(messagesForQuery, userContext),
|
|
690
|
+
systemPrompt: fullSystemPrompt,
|
|
691
|
+
thinkingConfig: toolUseContext.options.thinkingConfig,
|
|
692
|
+
tools: toolUseContext.options.tools,
|
|
693
|
+
signal: toolUseContext.abortController.signal,
|
|
694
|
+
options: {
|
|
695
|
+
async getToolPermissionContext() {
|
|
696
|
+
const appState = toolUseContext.getAppState()
|
|
697
|
+
return appState.toolPermissionContext
|
|
698
|
+
},
|
|
699
|
+
model: currentModel,
|
|
700
|
+
...(config.gates.fastModeEnabled && {
|
|
701
|
+
fastMode: appState.fastMode,
|
|
702
|
+
}),
|
|
703
|
+
toolChoice: undefined,
|
|
704
|
+
isNonInteractiveSession:
|
|
705
|
+
toolUseContext.options.isNonInteractiveSession,
|
|
706
|
+
fallbackModel,
|
|
707
|
+
onStreamingFallback: () => {
|
|
708
|
+
streamingFallbackOccured = true
|
|
709
|
+
},
|
|
710
|
+
querySource,
|
|
711
|
+
agents: toolUseContext.options.agentDefinitions.activeAgents,
|
|
712
|
+
allowedAgentTypes:
|
|
713
|
+
toolUseContext.options.agentDefinitions.allowedAgentTypes,
|
|
714
|
+
hasAppendSystemPrompt:
|
|
715
|
+
!!toolUseContext.options.appendSystemPrompt,
|
|
716
|
+
maxOutputTokensOverride,
|
|
717
|
+
fetchOverride: dumpPromptsFetch,
|
|
718
|
+
mcpTools: appState.mcp.tools,
|
|
719
|
+
hasPendingMcpServers: appState.mcp.clients.some(
|
|
720
|
+
c => c.type === 'pending',
|
|
721
|
+
),
|
|
722
|
+
queryTracking,
|
|
723
|
+
effortValue: appState.effortValue,
|
|
724
|
+
advisorModel: appState.advisorModel,
|
|
725
|
+
skipCacheWrite,
|
|
726
|
+
agentId: toolUseContext.agentId,
|
|
727
|
+
addNotification: toolUseContext.addNotification,
|
|
728
|
+
...(params.taskBudget && {
|
|
729
|
+
taskBudget: {
|
|
730
|
+
total: params.taskBudget.total,
|
|
731
|
+
...(taskBudgetRemaining !== undefined && {
|
|
732
|
+
remaining: taskBudgetRemaining,
|
|
733
|
+
}),
|
|
734
|
+
},
|
|
705
735
|
}),
|
|
706
736
|
},
|
|
707
|
-
})
|
|
708
|
-
|
|
709
|
-
|
|
737
|
+
})
|
|
738
|
+
|
|
739
|
+
for await (const message of modelMessages) {
|
|
710
740
|
// We won't use the tool_calls from the first attempt
|
|
711
741
|
// We could.. but then we'd have to merge assistant messages
|
|
712
742
|
// with different ids and double up on full the tool_results
|
|
@@ -153,7 +153,7 @@ export function isMediaSizeErrorMessage(msg: AssistantMessage): boolean {
|
|
|
153
153
|
)
|
|
154
154
|
}
|
|
155
155
|
export const CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = 'Credit balance is too low'
|
|
156
|
-
export const INVALID_API_KEY_ERROR_MESSAGE = '
|
|
156
|
+
export const INVALID_API_KEY_ERROR_MESSAGE = 'Authentication required'
|
|
157
157
|
export const INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL =
|
|
158
158
|
'Invalid API key · Fix external API key'
|
|
159
159
|
export const ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH =
|
|
@@ -792,6 +792,29 @@ export function getAssistantMessageFromError(
|
|
|
792
792
|
error: 'billing_error',
|
|
793
793
|
})
|
|
794
794
|
}
|
|
795
|
+
|
|
796
|
+
if (
|
|
797
|
+
error instanceof APIError &&
|
|
798
|
+
error.status === 500 &&
|
|
799
|
+
error.message.toLowerCase().includes('internal server error') &&
|
|
800
|
+
isClaudeAISubscriber() &&
|
|
801
|
+
getAPIProvider() === 'firstParty' &&
|
|
802
|
+
typeof MACRO.VERSION === 'string' &&
|
|
803
|
+
MACRO.VERSION.includes('mumucc')
|
|
804
|
+
) {
|
|
805
|
+
const lowerModel = model.toLowerCase()
|
|
806
|
+
const isClaudeSubscriptionModel =
|
|
807
|
+
lowerModel.includes('opus') || lowerModel.includes('sonnet')
|
|
808
|
+
if (isClaudeSubscriptionModel) {
|
|
809
|
+
return createAssistantAPIErrorMessage({
|
|
810
|
+
error: 'authentication_failed',
|
|
811
|
+
content:
|
|
812
|
+
'Claude subscription Sonnet/Opus requests are being rejected because this mumucc build does not include the official Claude Code native client attestation path. Use the official `claude` client for Claude Max Sonnet/Opus, or switch mumucc to OpenAI/DeepSeek/MiniMax/Haiku.',
|
|
813
|
+
errorDetails: error.message,
|
|
814
|
+
})
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
|
|
795
818
|
// "Organization has been disabled" — commonly a stale ANTHROPIC_API_KEY
|
|
796
819
|
// from a previous employer/project overriding subscription auth. Only handle
|
|
797
820
|
// the env-var case; apiKeyHelper and /login-managed keys mean the active
|