aios-core 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aios-core/.session/current-session.json +14 -0
- package/.aios-core/cli/commands/generate/index.js +222 -0
- package/.aios-core/cli/commands/manifest/index.js +46 -0
- package/.aios-core/cli/commands/manifest/regenerate.js +96 -0
- package/.aios-core/cli/commands/manifest/validate.js +66 -0
- package/.aios-core/cli/commands/mcp/add.js +234 -0
- package/.aios-core/cli/commands/mcp/index.js +76 -0
- package/.aios-core/cli/commands/mcp/link.js +217 -0
- package/.aios-core/cli/commands/mcp/setup.js +164 -0
- package/.aios-core/cli/commands/mcp/status.js +183 -0
- package/.aios-core/cli/commands/metrics/cleanup.js +91 -0
- package/.aios-core/cli/commands/metrics/index.js +65 -0
- package/.aios-core/cli/commands/metrics/record.js +154 -0
- package/.aios-core/cli/commands/metrics/seed.js +126 -0
- package/.aios-core/cli/commands/metrics/show.js +209 -0
- package/.aios-core/cli/commands/migrate/analyze.js +353 -0
- package/.aios-core/cli/commands/migrate/backup.js +352 -0
- package/.aios-core/cli/commands/migrate/execute.js +292 -0
- package/.aios-core/cli/commands/migrate/index.js +441 -0
- package/.aios-core/cli/commands/migrate/rollback.js +323 -0
- package/.aios-core/cli/commands/migrate/update-imports.js +396 -0
- package/.aios-core/cli/commands/migrate/validate.js +452 -0
- package/.aios-core/cli/commands/qa/index.js +56 -0
- package/.aios-core/cli/commands/qa/run.js +163 -0
- package/.aios-core/cli/commands/qa/status.js +195 -0
- package/.aios-core/cli/commands/workers/formatters/info-formatter.js +274 -0
- package/.aios-core/cli/commands/workers/formatters/list-table.js +265 -0
- package/.aios-core/cli/commands/workers/formatters/list-tree.js +159 -0
- package/.aios-core/cli/commands/workers/index.js +56 -0
- package/.aios-core/cli/commands/workers/info.js +194 -0
- package/.aios-core/cli/commands/workers/list.js +214 -0
- package/.aios-core/cli/commands/workers/search-filters.js +185 -0
- package/.aios-core/cli/commands/workers/search-keyword.js +310 -0
- package/.aios-core/cli/commands/workers/search-semantic.js +293 -0
- package/.aios-core/cli/commands/workers/search.js +154 -0
- package/.aios-core/cli/commands/workers/utils/pagination.js +102 -0
- package/.aios-core/cli/index.js +128 -0
- package/.aios-core/cli/utils/output-formatter-cli.js +232 -0
- package/.aios-core/cli/utils/score-calculator.js +221 -0
- package/.aios-core/core/README.md +229 -0
- package/.aios-core/core/config/config-cache.js +233 -0
- package/.aios-core/core/config/config-loader.js +277 -0
- package/.aios-core/core/data/agent-config-requirements.yaml +368 -0
- package/.aios-core/core/data/aios-kb.md +924 -0
- package/.aios-core/core/data/workflow-patterns.yaml +267 -0
- package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/core/docs/component-creation-guide.md +458 -0
- package/.aios-core/core/docs/session-update-pattern.md +307 -0
- package/.aios-core/core/docs/template-syntax.md +267 -0
- package/.aios-core/core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/core/elicitation/agent-elicitation.js +272 -0
- package/.aios-core/core/elicitation/elicitation-engine.js +479 -0
- package/.aios-core/core/elicitation/session-manager.js +320 -0
- package/.aios-core/core/elicitation/task-elicitation.js +281 -0
- package/.aios-core/core/elicitation/workflow-elicitation.js +315 -0
- package/.aios-core/core/index.esm.js +42 -0
- package/.aios-core/core/index.js +76 -0
- package/.aios-core/core/manifest/manifest-generator.js +386 -0
- package/.aios-core/core/manifest/manifest-validator.js +429 -0
- package/.aios-core/core/mcp/config-migrator.js +340 -0
- package/.aios-core/core/mcp/global-config-manager.js +369 -0
- package/.aios-core/core/mcp/index.js +34 -0
- package/.aios-core/core/mcp/os-detector.js +188 -0
- package/.aios-core/core/mcp/symlink-manager.js +413 -0
- package/.aios-core/core/migration/migration-config.yaml +83 -0
- package/.aios-core/core/migration/module-mapping.yaml +89 -0
- package/.aios-core/core/quality-gates/base-layer.js +134 -0
- package/.aios-core/core/quality-gates/checklist-generator.js +329 -0
- package/.aios-core/core/quality-gates/focus-area-recommender.js +359 -0
- package/.aios-core/core/quality-gates/human-review-orchestrator.js +529 -0
- package/.aios-core/core/quality-gates/layer1-precommit.js +336 -0
- package/.aios-core/core/quality-gates/layer2-pr-automation.js +324 -0
- package/.aios-core/core/quality-gates/layer3-human-review.js +348 -0
- package/.aios-core/core/quality-gates/notification-manager.js +550 -0
- package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -0
- package/.aios-core/core/quality-gates/quality-gate-manager.js +601 -0
- package/.aios-core/core/registry/README.md +179 -0
- package/.aios-core/core/registry/build-registry.js +452 -0
- package/.aios-core/core/registry/registry-loader.js +330 -0
- package/.aios-core/core/registry/registry-schema.json +166 -0
- package/.aios-core/core/registry/service-registry.json +6586 -0
- package/.aios-core/core/registry/validate-registry.js +340 -0
- package/.aios-core/core/session/context-detector.js +229 -0
- package/.aios-core/core/session/context-loader.js +288 -0
- package/.aios-core/core/utils/output-formatter.js +298 -0
- package/.aios-core/core/utils/security-utils.js +333 -0
- package/.aios-core/core/utils/yaml-validator.js +419 -0
- package/.aios-core/core-config.yaml +382 -0
- package/.aios-core/data/agent-config-requirements.yaml +368 -0
- package/.aios-core/data/aios-kb.md +924 -0
- package/.aios-core/data/technical-preferences.md +4 -0
- package/.aios-core/data/workflow-patterns.yaml +267 -0
- package/.aios-core/development/README.md +142 -0
- package/.aios-core/development/agent-teams/team-all.yaml +15 -0
- package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -0
- package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -0
- package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -0
- package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -0
- package/.aios-core/development/agents/aios-master.md +339 -0
- package/.aios-core/development/agents/analyst.md +195 -0
- package/.aios-core/development/agents/architect.md +359 -0
- package/.aios-core/development/agents/data-engineer.md +468 -0
- package/.aios-core/development/agents/dev.md +390 -0
- package/.aios-core/development/agents/devops.md +398 -0
- package/.aios-core/development/agents/pm.md +198 -0
- package/.aios-core/development/agents/po.md +256 -0
- package/.aios-core/development/agents/qa.md +312 -0
- package/.aios-core/development/agents/sm.md +220 -0
- package/.aios-core/development/agents/ux-design-expert.md +451 -0
- package/.aios-core/development/scripts/agent-assignment-resolver.js +231 -0
- package/.aios-core/development/scripts/agent-config-loader.js +624 -0
- package/.aios-core/development/scripts/agent-exit-hooks.js +96 -0
- package/.aios-core/development/scripts/apply-inline-greeting-all-agents.js +146 -0
- package/.aios-core/development/scripts/audit-agent-config.js +380 -0
- package/.aios-core/development/scripts/backlog-manager.js +404 -0
- package/.aios-core/development/scripts/batch-update-agents-session-context.js +95 -0
- package/.aios-core/development/scripts/decision-context.js +228 -0
- package/.aios-core/development/scripts/decision-log-generator.js +293 -0
- package/.aios-core/development/scripts/decision-log-indexer.js +284 -0
- package/.aios-core/development/scripts/decision-recorder.js +168 -0
- package/.aios-core/development/scripts/dev-context-loader.js +297 -0
- package/.aios-core/development/scripts/generate-greeting.js +160 -0
- package/.aios-core/development/scripts/greeting-builder.js +866 -0
- package/.aios-core/development/scripts/greeting-config-cli.js +85 -0
- package/.aios-core/development/scripts/greeting-preference-manager.js +145 -0
- package/.aios-core/development/scripts/migrate-task-to-v2.js +377 -0
- package/.aios-core/development/scripts/story-index-generator.js +337 -0
- package/.aios-core/development/scripts/story-manager.js +375 -0
- package/.aios-core/development/scripts/story-update-hook.js +259 -0
- package/.aios-core/development/scripts/task-identifier-resolver.js +145 -0
- package/.aios-core/development/scripts/test-greeting-system.js +142 -0
- package/.aios-core/development/scripts/validate-task-v2.js +319 -0
- package/.aios-core/development/scripts/workflow-navigator.js +214 -0
- package/.aios-core/development/tasks/add-mcp.md +319 -0
- package/.aios-core/development/tasks/advanced-elicitation.md +319 -0
- package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +342 -0
- package/.aios-core/development/tasks/analyze-framework.md +697 -0
- package/.aios-core/development/tasks/analyze-performance.md +637 -0
- package/.aios-core/development/tasks/apply-qa-fixes.md +340 -0
- package/.aios-core/development/tasks/architect-analyze-impact.md +827 -0
- package/.aios-core/development/tasks/audit-codebase.md +429 -0
- package/.aios-core/development/tasks/audit-tailwind-config.md +270 -0
- package/.aios-core/development/tasks/audit-utilities.md +358 -0
- package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -0
- package/.aios-core/development/tasks/brownfield-create-epic.md +486 -0
- package/.aios-core/development/tasks/brownfield-create-story.md +357 -0
- package/.aios-core/development/tasks/build-component.md +478 -0
- package/.aios-core/development/tasks/calculate-roi.md +455 -0
- package/.aios-core/development/tasks/ci-cd-configuration.md +764 -0
- package/.aios-core/development/tasks/cleanup-utilities.md +670 -0
- package/.aios-core/development/tasks/collaborative-edit.md +1109 -0
- package/.aios-core/development/tasks/compose-molecule.md +284 -0
- package/.aios-core/development/tasks/consolidate-patterns.md +414 -0
- package/.aios-core/development/tasks/correct-course.md +280 -0
- package/.aios-core/development/tasks/create-agent.md +322 -0
- package/.aios-core/development/tasks/create-brownfield-story.md +727 -0
- package/.aios-core/development/tasks/create-deep-research-prompt.md +499 -0
- package/.aios-core/development/tasks/create-doc.md +316 -0
- package/.aios-core/development/tasks/create-next-story.md +774 -0
- package/.aios-core/development/tasks/create-suite.md +284 -0
- package/.aios-core/development/tasks/create-task.md +372 -0
- package/.aios-core/development/tasks/create-workflow.md +371 -0
- package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -0
- package/.aios-core/development/tasks/db-apply-migration.md +381 -0
- package/.aios-core/development/tasks/db-bootstrap.md +642 -0
- package/.aios-core/development/tasks/db-domain-modeling.md +693 -0
- package/.aios-core/development/tasks/db-dry-run.md +293 -0
- package/.aios-core/development/tasks/db-env-check.md +260 -0
- package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -0
- package/.aios-core/development/tasks/db-explain.md +631 -0
- package/.aios-core/development/tasks/db-impersonate.md +495 -0
- package/.aios-core/development/tasks/db-load-csv.md +593 -0
- package/.aios-core/development/tasks/db-policy-apply.md +653 -0
- package/.aios-core/development/tasks/db-rls-audit.md +411 -0
- package/.aios-core/development/tasks/db-rollback.md +739 -0
- package/.aios-core/development/tasks/db-run-sql.md +613 -0
- package/.aios-core/development/tasks/db-schema-audit.md +1011 -0
- package/.aios-core/development/tasks/db-seed.md +390 -0
- package/.aios-core/development/tasks/db-smoke-test.md +351 -0
- package/.aios-core/development/tasks/db-snapshot.md +569 -0
- package/.aios-core/development/tasks/db-supabase-setup.md +712 -0
- package/.aios-core/development/tasks/db-verify-order.md +515 -0
- package/.aios-core/development/tasks/deprecate-component.md +957 -0
- package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -0
- package/.aios-core/development/tasks/dev-backlog-debt.md +469 -0
- package/.aios-core/development/tasks/dev-develop-story.md +846 -0
- package/.aios-core/development/tasks/dev-improve-code-quality.md +873 -0
- package/.aios-core/development/tasks/dev-optimize-performance.md +1034 -0
- package/.aios-core/development/tasks/dev-suggest-refactoring.md +871 -0
- package/.aios-core/development/tasks/dev-validate-next-story.md +349 -0
- package/.aios-core/development/tasks/document-project.md +553 -0
- package/.aios-core/development/tasks/environment-bootstrap.md +1311 -0
- package/.aios-core/development/tasks/execute-checklist.md +301 -0
- package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -0
- package/.aios-core/development/tasks/extend-pattern.md +269 -0
- package/.aios-core/development/tasks/extract-tokens.md +467 -0
- package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -0
- package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +261 -0
- package/.aios-core/development/tasks/generate-documentation.md +284 -0
- package/.aios-core/development/tasks/generate-migration-strategy.md +522 -0
- package/.aios-core/development/tasks/generate-shock-report.md +501 -0
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -0
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -0
- package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -0
- package/.aios-core/development/tasks/github-devops-version-management.md +483 -0
- package/.aios-core/development/tasks/improve-self.md +823 -0
- package/.aios-core/development/tasks/index-docs.md +388 -0
- package/.aios-core/development/tasks/init-project-status.md +506 -0
- package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -0
- package/.aios-core/development/tasks/kb-mode-interaction.md +284 -0
- package/.aios-core/development/tasks/learn-patterns.md +901 -0
- package/.aios-core/development/tasks/mcp-workflow.md +437 -0
- package/.aios-core/development/tasks/modify-agent.md +382 -0
- package/.aios-core/development/tasks/modify-task.md +425 -0
- package/.aios-core/development/tasks/modify-workflow.md +466 -0
- package/.aios-core/development/tasks/po-backlog-add.md +370 -0
- package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -0
- package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -0
- package/.aios-core/development/tasks/po-pull-story.md +316 -0
- package/.aios-core/development/tasks/po-stories-index.md +351 -0
- package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -0
- package/.aios-core/development/tasks/po-sync-story.md +303 -0
- package/.aios-core/development/tasks/pr-automation.md +701 -0
- package/.aios-core/development/tasks/propose-modification.md +843 -0
- package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -0
- package/.aios-core/development/tasks/qa-gate.md +374 -0
- package/.aios-core/development/tasks/qa-generate-tests.md +1175 -0
- package/.aios-core/development/tasks/qa-nfr-assess.md +558 -0
- package/.aios-core/development/tasks/qa-review-proposal.md +1158 -0
- package/.aios-core/development/tasks/qa-review-story.md +683 -0
- package/.aios-core/development/tasks/qa-risk-profile.md +567 -0
- package/.aios-core/development/tasks/qa-run-tests.md +277 -0
- package/.aios-core/development/tasks/qa-test-design.md +388 -0
- package/.aios-core/development/tasks/qa-trace-requirements.md +477 -0
- package/.aios-core/development/tasks/release-management.md +723 -0
- package/.aios-core/development/tasks/security-audit.md +554 -0
- package/.aios-core/development/tasks/security-scan.md +790 -0
- package/.aios-core/development/tasks/setup-database.md +741 -0
- package/.aios-core/development/tasks/setup-design-system.md +462 -0
- package/.aios-core/development/tasks/setup-github.md +874 -0
- package/.aios-core/development/tasks/setup-llm-routing.md +229 -0
- package/.aios-core/development/tasks/setup-mcp-docker.md +584 -0
- package/.aios-core/development/tasks/shard-doc.md +538 -0
- package/.aios-core/development/tasks/sm-create-next-story.md +480 -0
- package/.aios-core/development/tasks/sync-documentation.md +865 -0
- package/.aios-core/development/tasks/tailwind-upgrade.md +294 -0
- package/.aios-core/development/tasks/test-as-user.md +621 -0
- package/.aios-core/development/tasks/test-validation-task.md +171 -0
- package/.aios-core/development/tasks/undo-last.md +347 -0
- package/.aios-core/development/tasks/update-manifest.md +410 -0
- package/.aios-core/development/tasks/ux-create-wireframe.md +617 -0
- package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -0
- package/.aios-core/development/tasks/ux-user-research.md +559 -0
- package/.aios-core/development/tasks/validate-next-story.md +423 -0
- package/.aios-core/development/tasks/validate-structure.md +243 -0
- package/.aios-core/development/workflows/README.md +84 -0
- package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -0
- package/.aios-core/development/workflows/brownfield-service.yaml +187 -0
- package/.aios-core/development/workflows/brownfield-ui.yaml +197 -0
- package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -0
- package/.aios-core/development/workflows/greenfield-service.yaml +206 -0
- package/.aios-core/development/workflows/greenfield-ui.yaml +235 -0
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/docs/component-creation-guide.md +458 -0
- package/.aios-core/docs/session-update-pattern.md +307 -0
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -0
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -0
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -0
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -0
- package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -0
- package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -0
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -0
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -0
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -0
- package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -0
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -0
- package/.aios-core/docs/template-syntax.md +267 -0
- package/.aios-core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/elicitation/agent-elicitation.js +272 -0
- package/.aios-core/elicitation/task-elicitation.js +281 -0
- package/.aios-core/elicitation/workflow-elicitation.js +315 -0
- package/.aios-core/index.d.ts +8 -0
- package/.aios-core/index.esm.js +16 -0
- package/.aios-core/index.js +16 -0
- package/.aios-core/infrastructure/README.md +126 -0
- package/.aios-core/infrastructure/index.js +199 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/clickup-adapter.js +345 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/github-adapter.js +392 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/jira-adapter.js +448 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/local-adapter.js +175 -0
- package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +122 -0
- package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +89 -0
- package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +780 -0
- package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +950 -0
- package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +425 -0
- package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +132 -0
- package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +381 -0
- package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +203 -0
- package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +24 -0
- package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +51 -0
- package/.aios-core/infrastructure/scripts/aios-validator.js +294 -0
- package/.aios-core/infrastructure/scripts/approval-workflow.js +643 -0
- package/.aios-core/infrastructure/scripts/atomic-layer-classifier.js +308 -0
- package/.aios-core/infrastructure/scripts/backup-manager.js +607 -0
- package/.aios-core/infrastructure/scripts/batch-creator.js +608 -0
- package/.aios-core/infrastructure/scripts/branch-manager.js +391 -0
- package/.aios-core/infrastructure/scripts/capability-analyzer.js +535 -0
- package/.aios-core/infrastructure/scripts/clickup-helpers.js +226 -0
- package/.aios-core/infrastructure/scripts/code-quality-improver.js +1312 -0
- package/.aios-core/infrastructure/scripts/commit-message-generator.js +850 -0
- package/.aios-core/infrastructure/scripts/component-generator.js +738 -0
- package/.aios-core/infrastructure/scripts/component-metadata.js +627 -0
- package/.aios-core/infrastructure/scripts/component-search.js +277 -0
- package/.aios-core/infrastructure/scripts/config-cache.js +322 -0
- package/.aios-core/infrastructure/scripts/config-loader.js +349 -0
- package/.aios-core/infrastructure/scripts/conflict-resolver.js +675 -0
- package/.aios-core/infrastructure/scripts/coverage-analyzer.js +882 -0
- package/.aios-core/infrastructure/scripts/dependency-analyzer.js +638 -0
- package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +703 -0
- package/.aios-core/infrastructure/scripts/diff-generator.js +129 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/brownfield-analyzer.js +501 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +329 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +282 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +331 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +313 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +74 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +358 -0
- package/.aios-core/infrastructure/scripts/documentation-synchronizer.js +1432 -0
- package/.aios-core/infrastructure/scripts/framework-analyzer.js +746 -0
- package/.aios-core/infrastructure/scripts/git-config-detector.js +293 -0
- package/.aios-core/infrastructure/scripts/git-wrapper.js +443 -0
- package/.aios-core/infrastructure/scripts/improvement-engine.js +758 -0
- package/.aios-core/infrastructure/scripts/improvement-validator.js +710 -0
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +267 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.cmd +80 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.sh +62 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.cmd +26 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.sh +18 -0
- package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +970 -0
- package/.aios-core/infrastructure/scripts/modification-validator.js +555 -0
- package/.aios-core/infrastructure/scripts/output-formatter.js +297 -0
- package/.aios-core/infrastructure/scripts/performance-analyzer.js +758 -0
- package/.aios-core/infrastructure/scripts/performance-and-error-resolver.js +258 -0
- package/.aios-core/infrastructure/scripts/performance-optimizer.js +1902 -0
- package/.aios-core/infrastructure/scripts/performance-tracker.js +452 -0
- package/.aios-core/infrastructure/scripts/pm-adapter-factory.js +181 -0
- package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -0
- package/.aios-core/infrastructure/scripts/project-status-loader.js +445 -0
- package/.aios-core/infrastructure/scripts/refactoring-suggester.js +1139 -0
- package/.aios-core/infrastructure/scripts/repository-detector.js +64 -0
- package/.aios-core/infrastructure/scripts/sandbox-tester.js +618 -0
- package/.aios-core/infrastructure/scripts/security-checker.js +359 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/index.js +375 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/manifest-generator.js +410 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/naming-rules.yaml +285 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/placement-rules.yaml +262 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/validator.js +468 -0
- package/.aios-core/infrastructure/scripts/spot-check-validator.js +149 -0
- package/.aios-core/infrastructure/scripts/status-mapper.js +115 -0
- package/.aios-core/infrastructure/scripts/template-engine.js +240 -0
- package/.aios-core/infrastructure/scripts/template-validator.js +279 -0
- package/.aios-core/infrastructure/scripts/test-generator.js +844 -0
- package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1081 -0
- package/.aios-core/infrastructure/scripts/test-utilities-fast.js +126 -0
- package/.aios-core/infrastructure/scripts/test-utilities.js +200 -0
- package/.aios-core/infrastructure/scripts/tool-resolver.js +360 -0
- package/.aios-core/infrastructure/scripts/transaction-manager.js +590 -0
- package/.aios-core/infrastructure/scripts/usage-analytics.js +634 -0
- package/.aios-core/infrastructure/scripts/validate-output-pattern.js +213 -0
- package/.aios-core/infrastructure/scripts/visual-impact-generator.js +1056 -0
- package/.aios-core/infrastructure/scripts/yaml-validator.js +397 -0
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-brownfield.tmpl.yaml +182 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +127 -0
- package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -0
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -0
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -0
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -0
- package/.aios-core/infrastructure/templates/project-docs/coding-standards-tmpl.md +346 -0
- package/.aios-core/infrastructure/templates/project-docs/source-tree-tmpl.md +177 -0
- package/.aios-core/infrastructure/templates/project-docs/tech-stack-tmpl.md +267 -0
- package/.aios-core/infrastructure/tests/project-status-loader.test.js +394 -0
- package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -0
- package/.aios-core/infrastructure/tests/utilities-audit-results.json +501 -0
- package/.aios-core/infrastructure/tests/validate-module.js +97 -0
- package/.aios-core/infrastructure/tools/README.md +222 -0
- package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -0
- package/.aios-core/infrastructure/tools/cli/llm-routing.yaml +126 -0
- package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -0
- package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -0
- package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -0
- package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -0
- package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -0
- package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -0
- package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -0
- package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -0
- package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -0
- package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -0
- package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -0
- package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -0
- package/.aios-core/install-manifest.yaml +347 -0
- package/.aios-core/manifests/agents.csv +1 -0
- package/.aios-core/manifests/schema/manifest-schema.json +190 -0
- package/.aios-core/manifests/tasks.csv +121 -0
- package/.aios-core/manifests/workers.csv +204 -0
- package/.aios-core/package.json +103 -0
- package/.aios-core/product/README.md +56 -0
- package/.aios-core/product/checklists/architect-checklist.md +444 -0
- package/.aios-core/product/checklists/change-checklist.md +183 -0
- package/.aios-core/product/checklists/database-design-checklist.md +119 -0
- package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -0
- package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -0
- package/.aios-core/product/checklists/pm-checklist.md +376 -0
- package/.aios-core/product/checklists/po-master-checklist.md +442 -0
- package/.aios-core/product/checklists/pre-push-checklist.md +108 -0
- package/.aios-core/product/checklists/release-checklist.md +122 -0
- package/.aios-core/product/checklists/story-dod-checklist.md +102 -0
- package/.aios-core/product/checklists/story-draft-checklist.md +216 -0
- package/.aios-core/product/data/brainstorming-techniques.md +37 -0
- package/.aios-core/product/data/elicitation-methods.md +135 -0
- package/.aios-core/product/data/mode-selection-best-practices.md +471 -0
- package/.aios-core/product/data/test-levels-framework.md +149 -0
- package/.aios-core/product/data/test-priorities-matrix.md +175 -0
- package/.aios-core/product/templates/1mcp-config.yaml +225 -0
- package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -0
- package/.aios-core/product/templates/activation-instructions-template.md +258 -0
- package/.aios-core/product/templates/adr.hbs +125 -0
- package/.aios-core/product/templates/agent-template.yaml +121 -0
- package/.aios-core/product/templates/architecture-tmpl.yaml +651 -0
- package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +476 -0
- package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +280 -0
- package/.aios-core/product/templates/changelog-template.md +134 -0
- package/.aios-core/product/templates/command-rationalization-matrix.md +152 -0
- package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +293 -0
- package/.aios-core/product/templates/component-react-tmpl.tsx +98 -0
- package/.aios-core/product/templates/dbdr.hbs +241 -0
- package/.aios-core/product/templates/design-story-tmpl.yaml +587 -0
- package/.aios-core/product/templates/ds-artifact-analysis.md +70 -0
- package/.aios-core/product/templates/engine/elicitation.js +298 -0
- package/.aios-core/product/templates/engine/index.js +308 -0
- package/.aios-core/product/templates/engine/loader.js +231 -0
- package/.aios-core/product/templates/engine/renderer.js +343 -0
- package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -0
- package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -0
- package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -0
- package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -0
- package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -0
- package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -0
- package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -0
- package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -0
- package/.aios-core/product/templates/engine/validator.js +294 -0
- package/.aios-core/product/templates/epic.hbs +212 -0
- package/.aios-core/product/templates/eslintrc-security.json +32 -0
- package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +206 -0
- package/.aios-core/product/templates/front-end-spec-tmpl.yaml +349 -0
- package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +805 -0
- package/.aios-core/product/templates/github-actions-cd.yml +212 -0
- package/.aios-core/product/templates/github-actions-ci.yml +172 -0
- package/.aios-core/product/templates/github-pr-template.md +67 -0
- package/.aios-core/product/templates/gordon-mcp.yaml +140 -0
- package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -0
- package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -0
- package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -0
- package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -0
- package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -0
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -0
- package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -0
- package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -0
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -0
- package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -0
- package/.aios-core/product/templates/market-research-tmpl.yaml +252 -0
- package/.aios-core/product/templates/mcp-workflow.js +271 -0
- package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -0
- package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -0
- package/.aios-core/product/templates/personalized-agent-template.md +258 -0
- package/.aios-core/product/templates/personalized-checklist-template.md +340 -0
- package/.aios-core/product/templates/personalized-task-template-v2.md +905 -0
- package/.aios-core/product/templates/personalized-task-template.md +344 -0
- package/.aios-core/product/templates/personalized-template-file.yaml +322 -0
- package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -0
- package/.aios-core/product/templates/pmdr.hbs +186 -0
- package/.aios-core/product/templates/prd-tmpl.yaml +202 -0
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -0
- package/.aios-core/product/templates/prd.hbs +201 -0
- package/.aios-core/product/templates/project-brief-tmpl.yaml +221 -0
- package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -0
- package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -0
- package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -0
- package/.aios-core/product/templates/shock-report-tmpl.html +502 -0
- package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -0
- package/.aios-core/product/templates/story-tmpl.yaml +332 -0
- package/.aios-core/product/templates/story.hbs +263 -0
- package/.aios-core/product/templates/task-execution-report.md +495 -0
- package/.aios-core/product/templates/task-template.md +123 -0
- package/.aios-core/product/templates/task.hbs +170 -0
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -0
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -0
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -0
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -0
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -0
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -0
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -0
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -0
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -0
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -0
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -0
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -0
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -0
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -0
- package/.aios-core/product/templates/tmpl-view.sql +177 -0
- package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -0
- package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -0
- package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -0
- package/.aios-core/product/templates/workflow-template.yaml +134 -0
- package/.aios-core/quality/metrics-collector.js +572 -0
- package/.aios-core/quality/metrics-hook.js +260 -0
- package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -0
- package/.aios-core/quality/seed-metrics.js +336 -0
- package/.aios-core/scripts/README.md +354 -0
- package/.aios-core/scripts/aios-doc-template.md +325 -0
- package/.aios-core/scripts/batch-migrate-phase1.ps1 +36 -0
- package/.aios-core/scripts/batch-migrate-phase2.ps1 +88 -0
- package/.aios-core/scripts/batch-migrate-phase3.ps1 +45 -0
- package/.aios-core/scripts/command-execution-hook.js +201 -0
- package/.aios-core/scripts/context-detector.js +226 -0
- package/.aios-core/scripts/elicitation-engine.js +385 -0
- package/.aios-core/scripts/elicitation-session-manager.js +300 -0
- package/.aios-core/scripts/migrate-framework-docs.sh +300 -0
- package/.aios-core/scripts/session-context-loader.js +286 -0
- package/.aios-core/scripts/test-template-system.js +941 -0
- package/.aios-core/scripts/validate-phase1.ps1 +35 -0
- package/.aios-core/scripts/workflow-management.md +69 -0
- package/.aios-core/tasks/find-component.md.legacy +391 -0
- package/.aios-core/tasks/generate-commit-message.md.legacy +426 -0
- package/.aios-core/tasks/generate-migration.md.legacy +382 -0
- package/.aios-core/tasks/rollback-modification.md.legacy +307 -0
- package/.aios-core/tasks/update-tests.md.legacy +283 -0
- package/.aios-core/user-guide.md +1413 -0
- package/.aios-core/working-in-the-brownfield.md +361 -0
- package/.claude/CLAUDE.md +221 -0
- package/LICENSE +48 -0
- package/README.md +703 -0
- package/bin/aios-init-old.js +532 -0
- package/bin/aios-init-v4.js +390 -0
- package/bin/aios-init.backup-v1.1.4.js +352 -0
- package/bin/aios-init.js +736 -0
- package/bin/aios-minimal.js +26 -0
- package/bin/aios.js +279 -0
- package/bin/migrate-pm-config.js +219 -0
- package/bin/modules/env-config.js +436 -0
- package/bin/modules/mcp-installer.js +383 -0
- package/bin/utils/install-errors.js +339 -0
- package/bin/utils/install-transaction.js +445 -0
- package/index.d.ts +19 -0
- package/index.esm.js +21 -0
- package/index.js +94 -0
- package/package.json +161 -0
- package/packages/installer/package.json +39 -0
- package/packages/installer/src/config/configure-environment.js +312 -0
- package/packages/installer/src/config/templates/core-config-template.js +183 -0
- package/packages/installer/src/config/templates/env-template.js +127 -0
- package/packages/installer/src/config/validation/config-validator.js +243 -0
- package/packages/installer/src/detection/detect-project-type.js +81 -0
- package/packages/installer/src/wizard/wizard.js +244 -0
- package/packages/installer/tests/integration/environment-configuration.test.js +328 -0
- package/packages/installer/tests/integration/wizard-detection.test.js +349 -0
- package/packages/installer/tests/unit/config-validator.test.js +315 -0
- package/packages/installer/tests/unit/detection/detect-project-type.test.js +401 -0
- package/packages/installer/tests/unit/env-template.test.js +185 -0
- package/src/config/ide-configs.js +189 -0
- package/src/installer/aios-core-installer.js +319 -0
- package/src/installer/dependency-installer.js +335 -0
- package/src/utils/aios-colors.js +234 -0
- package/src/wizard/feedback.js +218 -0
- package/src/wizard/ide-config-generator.js +488 -0
- package/src/wizard/ide-selector.js +84 -0
- package/src/wizard/index.js +589 -0
- package/src/wizard/questions.js +249 -0
- package/src/wizard/validation/index.js +120 -0
- package/src/wizard/validation/report-generator.js +269 -0
- package/src/wizard/validation/troubleshooting-system.js +346 -0
- package/src/wizard/validation/validators/config-validator.js +362 -0
- package/src/wizard/validation/validators/dependency-validator.js +333 -0
- package/src/wizard/validation/validators/file-structure-validator.js +181 -0
- package/src/wizard/validation/validators/mcp-health-checker.js +310 -0
- package/src/wizard/validators.js +274 -0
- package/templates/squad/LICENSE +21 -0
- package/templates/squad/README.md +37 -0
- package/templates/squad/agents/example-agent.yaml +36 -0
- package/templates/squad/package.json +19 -0
- package/templates/squad/squad.yaml +25 -0
- package/templates/squad/tasks/example-task.yaml +46 -0
- package/templates/squad/templates/example-template.md +24 -0
- package/templates/squad/tests/example-agent.test.js +53 -0
- package/templates/squad/workflows/example-workflow.yaml +54 -0
- package/tools/package-builder.js +35 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Health Checker
|
|
3
|
+
* Task 1.8.3: MCP health checks (deferred from Story 1.5)
|
|
4
|
+
*
|
|
5
|
+
* Validates that installed MCPs are functioning correctly
|
|
6
|
+
*
|
|
7
|
+
* @module wizard/validation/validators/mcp-health-checker
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const fs = require('fs');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Validate MCPs with health checks
|
|
14
|
+
*
|
|
15
|
+
* @param {Object} mcpContext - MCP installation result
|
|
16
|
+
* @param {Object} mcpContext.installedMCPs - Map of installed MCPs
|
|
17
|
+
* @param {string} mcpContext.configPath - Path to .mcp.json
|
|
18
|
+
* @returns {Promise<Object>} Validation result
|
|
19
|
+
*/
|
|
20
|
+
async function validateMCPs(mcpContext = {}) {
|
|
21
|
+
const results = {
|
|
22
|
+
success: true,
|
|
23
|
+
healthChecks: [],
|
|
24
|
+
errors: [],
|
|
25
|
+
warnings: [],
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
if (!mcpContext.installedMCPs || Object.keys(mcpContext.installedMCPs).length === 0) {
|
|
29
|
+
results.checks = [{
|
|
30
|
+
component: 'MCPs',
|
|
31
|
+
status: 'skipped',
|
|
32
|
+
message: 'No MCPs installed',
|
|
33
|
+
}];
|
|
34
|
+
return results;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
try {
|
|
38
|
+
// Load .mcp.json to get MCP configurations
|
|
39
|
+
const mcpConfigPath = mcpContext.configPath || '.mcp.json';
|
|
40
|
+
if (!fs.existsSync(mcpConfigPath)) {
|
|
41
|
+
results.warnings.push({
|
|
42
|
+
severity: 'medium',
|
|
43
|
+
message: '.mcp.json not found - skipping health checks',
|
|
44
|
+
code: 'MCP_CONFIG_MISSING',
|
|
45
|
+
});
|
|
46
|
+
return results;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const mcpConfig = JSON.parse(fs.readFileSync(mcpConfigPath, 'utf8'));
|
|
50
|
+
|
|
51
|
+
// Run health checks for each installed MCP
|
|
52
|
+
const healthCheckPromises = Object.entries(mcpContext.installedMCPs).map(
|
|
53
|
+
async ([mcpId, installStatus]) => {
|
|
54
|
+
if (installStatus.status !== 'success') {
|
|
55
|
+
return {
|
|
56
|
+
mcp: mcpId,
|
|
57
|
+
status: 'skipped',
|
|
58
|
+
message: 'Installation failed - skipping health check',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
try {
|
|
63
|
+
const healthResult = await runHealthCheck(mcpId, mcpConfig.mcpServers[mcpId]);
|
|
64
|
+
return {
|
|
65
|
+
mcp: mcpId,
|
|
66
|
+
status: healthResult.success ? 'success' : 'warning',
|
|
67
|
+
message: healthResult.message,
|
|
68
|
+
responseTime: healthResult.duration,
|
|
69
|
+
details: healthResult.details,
|
|
70
|
+
};
|
|
71
|
+
} catch (error) {
|
|
72
|
+
return {
|
|
73
|
+
mcp: mcpId,
|
|
74
|
+
status: 'failed',
|
|
75
|
+
message: `Health check failed: ${error.message}`,
|
|
76
|
+
error: error.message,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
const healthCheckResults = await Promise.all(healthCheckPromises);
|
|
83
|
+
|
|
84
|
+
// Process results
|
|
85
|
+
for (const healthCheck of healthCheckResults) {
|
|
86
|
+
results.healthChecks.push(healthCheck);
|
|
87
|
+
|
|
88
|
+
if (healthCheck.status === 'failed') {
|
|
89
|
+
results.warnings.push({
|
|
90
|
+
severity: 'medium',
|
|
91
|
+
message: `${healthCheck.mcp} health check failed: ${healthCheck.message}`,
|
|
92
|
+
code: 'MCP_HEALTH_CHECK_FAILED',
|
|
93
|
+
mcp: healthCheck.mcp,
|
|
94
|
+
});
|
|
95
|
+
} else if (healthCheck.status === 'warning') {
|
|
96
|
+
results.warnings.push({
|
|
97
|
+
severity: 'low',
|
|
98
|
+
message: `${healthCheck.mcp} health check warning: ${healthCheck.message}`,
|
|
99
|
+
code: 'MCP_HEALTH_CHECK_WARNING',
|
|
100
|
+
mcp: healthCheck.mcp,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Overall success if at least one MCP is healthy
|
|
106
|
+
const healthyCount = healthCheckResults.filter(r => r.status === 'success').length;
|
|
107
|
+
const failedCount = healthCheckResults.filter(r => r.status === 'failed').length;
|
|
108
|
+
|
|
109
|
+
if (healthyCount === 0 && failedCount > 0) {
|
|
110
|
+
results.success = false;
|
|
111
|
+
results.errors.push({
|
|
112
|
+
severity: 'high',
|
|
113
|
+
message: 'All MCP health checks failed',
|
|
114
|
+
code: 'ALL_MCP_HEALTH_CHECKS_FAILED',
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return results;
|
|
119
|
+
} catch (error) {
|
|
120
|
+
results.errors.push({
|
|
121
|
+
severity: 'medium',
|
|
122
|
+
message: `MCP health check validation failed: ${error.message}`,
|
|
123
|
+
code: 'MCP_HEALTH_CHECK_ERROR',
|
|
124
|
+
details: error.stack,
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
return results;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Run health check for a specific MCP
|
|
133
|
+
* @private
|
|
134
|
+
*
|
|
135
|
+
* @param {string} mcpId - MCP identifier
|
|
136
|
+
* @param {Object} mcpConfig - MCP configuration from .mcp.json
|
|
137
|
+
* @returns {Promise<Object>} Health check result
|
|
138
|
+
*/
|
|
139
|
+
async function runHealthCheck(mcpId, mcpConfig) {
|
|
140
|
+
const startTime = Date.now();
|
|
141
|
+
|
|
142
|
+
try {
|
|
143
|
+
let result;
|
|
144
|
+
|
|
145
|
+
switch (mcpId) {
|
|
146
|
+
case 'browser':
|
|
147
|
+
result = await testBrowserMCP(mcpConfig);
|
|
148
|
+
break;
|
|
149
|
+
|
|
150
|
+
case 'context7':
|
|
151
|
+
result = await testContext7MCP(mcpConfig);
|
|
152
|
+
break;
|
|
153
|
+
|
|
154
|
+
case 'exa':
|
|
155
|
+
result = await testExaMCP(mcpConfig);
|
|
156
|
+
break;
|
|
157
|
+
|
|
158
|
+
case 'desktop-commander':
|
|
159
|
+
result = await testDesktopCommanderMCP(mcpConfig);
|
|
160
|
+
break;
|
|
161
|
+
|
|
162
|
+
default:
|
|
163
|
+
result = {
|
|
164
|
+
success: true,
|
|
165
|
+
message: 'Unknown MCP type - basic config validation only',
|
|
166
|
+
details: { configValid: !!mcpConfig },
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
success: result.success,
|
|
172
|
+
message: result.message,
|
|
173
|
+
duration: Date.now() - startTime,
|
|
174
|
+
details: result.details,
|
|
175
|
+
};
|
|
176
|
+
} catch (error) {
|
|
177
|
+
return {
|
|
178
|
+
success: false,
|
|
179
|
+
message: `Health check error: ${error.message}`,
|
|
180
|
+
duration: Date.now() - startTime,
|
|
181
|
+
error: error.message,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Test Browser MCP (Puppeteer)
|
|
188
|
+
* @private
|
|
189
|
+
*/
|
|
190
|
+
async function testBrowserMCP(config) {
|
|
191
|
+
// Basic validation: Check if command is configured
|
|
192
|
+
if (!config || !config.command) {
|
|
193
|
+
return {
|
|
194
|
+
success: false,
|
|
195
|
+
message: 'Invalid configuration - missing command',
|
|
196
|
+
details: { configValid: false },
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Note: Full browser test would require spawning puppeteer
|
|
201
|
+
// For validation, we just check configuration validity
|
|
202
|
+
return {
|
|
203
|
+
success: true,
|
|
204
|
+
message: 'Configuration valid (runtime test requires browser launch)',
|
|
205
|
+
details: {
|
|
206
|
+
configValid: true,
|
|
207
|
+
command: config.command,
|
|
208
|
+
note: 'Full test deferred to first use',
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Test Context7 MCP (npx/stdio configuration)
|
|
215
|
+
* Now uses @upstash/context7-mcp package via npx
|
|
216
|
+
* @private
|
|
217
|
+
*/
|
|
218
|
+
async function testContext7MCP(config) {
|
|
219
|
+
// Context7 now uses npx/stdio transport instead of HTTP
|
|
220
|
+
if (!config || !config.command) {
|
|
221
|
+
return {
|
|
222
|
+
success: false,
|
|
223
|
+
message: 'Invalid configuration - missing command',
|
|
224
|
+
details: { configValid: false },
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// Basic validation: Check if command is configured for npx execution
|
|
229
|
+
return {
|
|
230
|
+
success: true,
|
|
231
|
+
message: 'Configuration valid (runtime test requires MCP server launch)',
|
|
232
|
+
details: {
|
|
233
|
+
configValid: true,
|
|
234
|
+
command: config.command,
|
|
235
|
+
note: 'Full test deferred to first use',
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Test Exa MCP (API test)
|
|
242
|
+
* @private
|
|
243
|
+
*/
|
|
244
|
+
async function testExaMCP(config) {
|
|
245
|
+
if (!config || !config.env || !config.env.EXA_API_KEY) {
|
|
246
|
+
return {
|
|
247
|
+
success: false,
|
|
248
|
+
message: 'API key not configured in .env',
|
|
249
|
+
details: {
|
|
250
|
+
configValid: true,
|
|
251
|
+
apiKeyConfigured: false,
|
|
252
|
+
solution: 'Add EXA_API_KEY to .env file',
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Check if API key is a placeholder
|
|
258
|
+
const apiKey = config.env.EXA_API_KEY;
|
|
259
|
+
if (apiKey.includes('${') || apiKey === 'your-api-key-here') {
|
|
260
|
+
return {
|
|
261
|
+
success: false,
|
|
262
|
+
message: 'API key is placeholder - update .env with real key',
|
|
263
|
+
details: {
|
|
264
|
+
configValid: true,
|
|
265
|
+
apiKeyConfigured: false,
|
|
266
|
+
solution: 'Replace ${EXA_API_KEY} or placeholder in .env',
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return {
|
|
272
|
+
success: true,
|
|
273
|
+
message: 'Configuration valid (API test requires real API call)',
|
|
274
|
+
details: {
|
|
275
|
+
configValid: true,
|
|
276
|
+
apiKeyConfigured: true,
|
|
277
|
+
note: 'Full API test deferred to first use',
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Test Desktop Commander MCP (File access)
|
|
284
|
+
* @private
|
|
285
|
+
*/
|
|
286
|
+
async function testDesktopCommanderMCP(config) {
|
|
287
|
+
if (!config || !config.command) {
|
|
288
|
+
return {
|
|
289
|
+
success: false,
|
|
290
|
+
message: 'Invalid configuration - missing command',
|
|
291
|
+
details: { configValid: false },
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// Basic validation: Check if command is configured
|
|
296
|
+
return {
|
|
297
|
+
success: true,
|
|
298
|
+
message: 'Configuration valid (file access test requires runtime)',
|
|
299
|
+
details: {
|
|
300
|
+
configValid: true,
|
|
301
|
+
command: config.command,
|
|
302
|
+
note: 'Full test deferred to first use',
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
module.exports = {
|
|
308
|
+
validateMCPs,
|
|
309
|
+
runHealthCheck,
|
|
310
|
+
};
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input Validators with Security Best Practices
|
|
3
|
+
*
|
|
4
|
+
* OWASP-compliant validators for all wizard inputs
|
|
5
|
+
* Protects against: command injection, path traversal, XSS, buffer overflow
|
|
6
|
+
*
|
|
7
|
+
* @see docs/stories/v2.1/sprint-1/story-1.2-interactive-wizard-foundation.md
|
|
8
|
+
* @module wizard/validators
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const path = require('path');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Maximum input lengths to prevent buffer overflow
|
|
15
|
+
*/
|
|
16
|
+
const INPUT_LIMITS = {
|
|
17
|
+
projectName: 100,
|
|
18
|
+
path: 255,
|
|
19
|
+
generic: 500,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Allowed project types (whitelist)
|
|
24
|
+
*/
|
|
25
|
+
const ALLOWED_PROJECT_TYPES = ['greenfield', 'brownfield'];
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Shell-special characters that need escaping/rejection
|
|
29
|
+
*/
|
|
30
|
+
const SHELL_SPECIAL_CHARS = /[;&|$`()\\<>\n]/;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Validate project type against whitelist
|
|
34
|
+
*
|
|
35
|
+
* @param {string} input - User input
|
|
36
|
+
* @returns {boolean|string} True if valid, error message if invalid
|
|
37
|
+
*/
|
|
38
|
+
function validateProjectType(input) {
|
|
39
|
+
if (!input || typeof input !== 'string') {
|
|
40
|
+
return 'Project type is required';
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const normalized = input.toLowerCase().trim();
|
|
44
|
+
|
|
45
|
+
if (!ALLOWED_PROJECT_TYPES.includes(normalized)) {
|
|
46
|
+
return `Invalid project type. Must be one of: ${ALLOWED_PROJECT_TYPES.join(', ')}`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Validate and sanitize path input
|
|
54
|
+
* Prevents path traversal attacks (../../../etc/passwd)
|
|
55
|
+
*
|
|
56
|
+
* Security policy:
|
|
57
|
+
* - Cross-drive access is DISALLOWED for security (e.g., C:\ vs D:\ on Windows)
|
|
58
|
+
* - Path must resolve within baseDir (no up-level traversal)
|
|
59
|
+
* - Uses path.relative() and root comparison for robust validation across platforms
|
|
60
|
+
*
|
|
61
|
+
* @param {string} input - Path input
|
|
62
|
+
* @param {string} baseDir - Base directory (default: process.cwd())
|
|
63
|
+
* @returns {boolean|string} True if valid, error message if invalid
|
|
64
|
+
*/
|
|
65
|
+
function validatePath(input, baseDir = process.cwd()) {
|
|
66
|
+
if (!input || typeof input !== 'string') {
|
|
67
|
+
return 'Path is required';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Check length
|
|
71
|
+
if (input.length > INPUT_LIMITS.path) {
|
|
72
|
+
return `Path too long (max ${INPUT_LIMITS.path} characters)`;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Reject shell-special characters in paths
|
|
76
|
+
if (SHELL_SPECIAL_CHARS.test(input)) {
|
|
77
|
+
return 'Path contains invalid characters';
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Resolve and verify path is within base directory
|
|
81
|
+
// Normalize both paths to handle trailing slashes and relative segments
|
|
82
|
+
const normalizedBaseDir = path.resolve(baseDir);
|
|
83
|
+
const resolved = path.resolve(normalizedBaseDir, input);
|
|
84
|
+
|
|
85
|
+
// On Windows, check for cross-drive access (e.g., C:\ vs D:\)
|
|
86
|
+
// Cross-drive targets are disallowed for security - path must stay within same root
|
|
87
|
+
const baseRoot = path.parse(normalizedBaseDir).root;
|
|
88
|
+
const resolvedRoot = path.parse(resolved).root;
|
|
89
|
+
|
|
90
|
+
if (baseRoot !== resolvedRoot) {
|
|
91
|
+
return 'Path must be within project directory (cross-drive access not allowed)';
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Use path.relative to detect traversal attempts
|
|
95
|
+
// If resolved is within baseDir, relative path won't start with '..'
|
|
96
|
+
const relativePath = path.relative(normalizedBaseDir, resolved);
|
|
97
|
+
|
|
98
|
+
// Check for up-level traversal indicators
|
|
99
|
+
// Empty string means paths are identical, which is valid
|
|
100
|
+
if (relativePath && (relativePath.startsWith('..') || relativePath.includes('..'))) {
|
|
101
|
+
return 'Path must be within project directory (path traversal detected)';
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Sanitize text input
|
|
109
|
+
* Removes/escapes shell-special characters
|
|
110
|
+
*
|
|
111
|
+
* @param {string} input - Text input
|
|
112
|
+
* @param {number} maxLength - Maximum length (default: INPUT_LIMITS.generic)
|
|
113
|
+
* @returns {boolean|string} True if valid, error message if invalid
|
|
114
|
+
*/
|
|
115
|
+
function validateTextInput(input, maxLength = INPUT_LIMITS.generic) {
|
|
116
|
+
if (!input || typeof input !== 'string') {
|
|
117
|
+
return 'Input is required';
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Trim whitespace
|
|
121
|
+
const trimmed = input.trim();
|
|
122
|
+
|
|
123
|
+
// Check length
|
|
124
|
+
if (trimmed.length === 0) {
|
|
125
|
+
return 'Input cannot be empty';
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (trimmed.length > maxLength) {
|
|
129
|
+
return `Input too long (max ${maxLength} characters)`;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Reject shell-special characters
|
|
133
|
+
if (SHELL_SPECIAL_CHARS.test(trimmed)) {
|
|
134
|
+
return 'Input contains invalid characters (shell-special characters not allowed)';
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Check for potential command injection patterns
|
|
138
|
+
const injectionPatterns = [
|
|
139
|
+
/\$\(/, // $(command)
|
|
140
|
+
/`[^`]+`/, // `command`
|
|
141
|
+
/&&/, // command chaining
|
|
142
|
+
/\|\|/, // command chaining
|
|
143
|
+
/<script/i, // XSS-style
|
|
144
|
+
/<img/i, // XSS-style
|
|
145
|
+
];
|
|
146
|
+
|
|
147
|
+
for (const pattern of injectionPatterns) {
|
|
148
|
+
if (pattern.test(trimmed)) {
|
|
149
|
+
return 'Input contains potentially malicious patterns';
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Validate project name
|
|
158
|
+
* Stricter than generic text - only alphanumeric, dash, underscore
|
|
159
|
+
*
|
|
160
|
+
* @param {string} input - Project name
|
|
161
|
+
* @returns {boolean|string} True if valid, error message if invalid
|
|
162
|
+
*/
|
|
163
|
+
function validateProjectName(input) {
|
|
164
|
+
if (!input || typeof input !== 'string') {
|
|
165
|
+
return 'Project name is required';
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const trimmed = input.trim();
|
|
169
|
+
|
|
170
|
+
// Check length
|
|
171
|
+
if (trimmed.length === 0) {
|
|
172
|
+
return 'Project name cannot be empty';
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (trimmed.length > INPUT_LIMITS.projectName) {
|
|
176
|
+
return `Project name too long (max ${INPUT_LIMITS.projectName} characters)`;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Only allow alphanumeric, dash, underscore
|
|
180
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(trimmed)) {
|
|
181
|
+
return 'Project name can only contain letters, numbers, dashes, and underscores';
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Must start with letter or number
|
|
185
|
+
if (!/^[a-zA-Z0-9]/.test(trimmed)) {
|
|
186
|
+
return 'Project name must start with a letter or number';
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Create inquirer-compatible validator function
|
|
194
|
+
* Converts validator return to inquirer format
|
|
195
|
+
*
|
|
196
|
+
* @param {Function} validatorFn - Validator function
|
|
197
|
+
* @returns {Function} Inquirer-compatible validator
|
|
198
|
+
*/
|
|
199
|
+
function createInquirerValidator(validatorFn) {
|
|
200
|
+
return (input) => {
|
|
201
|
+
const result = validatorFn(input);
|
|
202
|
+
return result === true ? true : result;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Sanitize string by escaping shell-special characters
|
|
208
|
+
* Use ONLY if you absolutely need to preserve special chars
|
|
209
|
+
* Prefer validation/rejection instead
|
|
210
|
+
*
|
|
211
|
+
* @param {string} input - String to sanitize
|
|
212
|
+
* @returns {string} Sanitized string
|
|
213
|
+
*/
|
|
214
|
+
function sanitizeShellInput(input) {
|
|
215
|
+
if (typeof input !== 'string') {
|
|
216
|
+
return '';
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Escape shell-special characters
|
|
220
|
+
const sanitized = input
|
|
221
|
+
.replace(/\\/g, '\\\\')
|
|
222
|
+
.replace(/'/g, "\\'")
|
|
223
|
+
.replace(/"/g, '\\"')
|
|
224
|
+
.replace(/`/g, '\\`')
|
|
225
|
+
.replace(/\$/g, '\\$')
|
|
226
|
+
.replace(/;/g, '\\;')
|
|
227
|
+
.replace(/&/g, '\\&')
|
|
228
|
+
.replace(/\|/g, '\\|')
|
|
229
|
+
.replace(/</g, '\\<')
|
|
230
|
+
.replace(/>/g, '\\>')
|
|
231
|
+
.replace(/\(/g, '\\(')
|
|
232
|
+
.replace(/\)/g, '\\)')
|
|
233
|
+
.replace(/\n/g, '\\n');
|
|
234
|
+
|
|
235
|
+
return sanitized;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Validate list selection (for IDE, MCP, etc.)
|
|
240
|
+
*
|
|
241
|
+
* @param {string} input - Selected value
|
|
242
|
+
* @param {string[]} allowedValues - Whitelist of allowed values
|
|
243
|
+
* @returns {boolean|string} True if valid, error message if invalid
|
|
244
|
+
*/
|
|
245
|
+
function validateListSelection(input, allowedValues) {
|
|
246
|
+
if (!input || typeof input !== 'string') {
|
|
247
|
+
return 'Selection is required';
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
if (!allowedValues.includes(input)) {
|
|
251
|
+
return `Invalid selection. Must be one of: ${allowedValues.join(', ')}`;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
module.exports = {
|
|
258
|
+
// Core validators
|
|
259
|
+
validateProjectType,
|
|
260
|
+
validatePath,
|
|
261
|
+
validateTextInput,
|
|
262
|
+
validateProjectName,
|
|
263
|
+
validateListSelection,
|
|
264
|
+
|
|
265
|
+
// Utility functions
|
|
266
|
+
createInquirerValidator,
|
|
267
|
+
sanitizeShellInput,
|
|
268
|
+
|
|
269
|
+
// Constants (export for testing)
|
|
270
|
+
INPUT_LIMITS,
|
|
271
|
+
ALLOWED_PROJECT_TYPES,
|
|
272
|
+
SHELL_SPECIAL_CHARS,
|
|
273
|
+
};
|
|
274
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) {{year}} {{author}}
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# {{Squad Name}}
|
|
2
|
+
|
|
3
|
+
{{Brief description of what this Squad does}}
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install {{squad-name}}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Activate the agent
|
|
15
|
+
@{{agent-name}}
|
|
16
|
+
|
|
17
|
+
# Use commands
|
|
18
|
+
*{{command-name}}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- Feature 1
|
|
24
|
+
- Feature 2
|
|
25
|
+
- Feature 3
|
|
26
|
+
|
|
27
|
+
## Documentation
|
|
28
|
+
|
|
29
|
+
See the [full documentation](docs/README.md) for detailed usage.
|
|
30
|
+
|
|
31
|
+
## Contributing
|
|
32
|
+
|
|
33
|
+
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
34
|
+
|
|
35
|
+
## License
|
|
36
|
+
|
|
37
|
+
MIT License - see [LICENSE](LICENSE)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Example Agent Definition
|
|
2
|
+
# Replace placeholders with your agent's details
|
|
3
|
+
|
|
4
|
+
name: example-agent
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Brief description of what this agent does
|
|
7
|
+
|
|
8
|
+
persona:
|
|
9
|
+
name: Example Agent
|
|
10
|
+
role: Your Agent's Role
|
|
11
|
+
expertise:
|
|
12
|
+
- Expertise Area 1
|
|
13
|
+
- Expertise Area 2
|
|
14
|
+
- Expertise Area 3
|
|
15
|
+
|
|
16
|
+
capabilities:
|
|
17
|
+
- capability-one
|
|
18
|
+
- capability-two
|
|
19
|
+
|
|
20
|
+
commands:
|
|
21
|
+
- name: example-command
|
|
22
|
+
description: What this command does
|
|
23
|
+
workflow: example-workflow
|
|
24
|
+
|
|
25
|
+
system_prompt: |
|
|
26
|
+
You are Example Agent, specialized in [your domain].
|
|
27
|
+
|
|
28
|
+
Your responsibilities:
|
|
29
|
+
- Responsibility 1
|
|
30
|
+
- Responsibility 2
|
|
31
|
+
- Responsibility 3
|
|
32
|
+
|
|
33
|
+
Guidelines:
|
|
34
|
+
- Be helpful and precise
|
|
35
|
+
- Follow best practices
|
|
36
|
+
- Ask for clarification when needed
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{squad-name}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "{{description}}",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "jest",
|
|
8
|
+
"lint": "eslint src/",
|
|
9
|
+
"dev": "aios-dev-server"
|
|
10
|
+
},
|
|
11
|
+
"keywords": ["aios", "aios-squad"],
|
|
12
|
+
"author": "{{author}}",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@aios/testing": "^2.1.0",
|
|
16
|
+
"jest": "^29.0.0",
|
|
17
|
+
"eslint": "^8.0.0"
|
|
18
|
+
}
|
|
19
|
+
}
|