aios-core 1.0.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/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/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 +314 -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 +484 -0
- package/.aios-core/core/elicitation/session-manager.js +321 -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 +232 -0
- package/.aios-core/core/session/context-loader.js +442 -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 +497 -0
- package/.aios-core/data/agent-config-requirements.yaml +368 -0
- package/.aios-core/data/aios-kb.md +924 -0
- package/.aios-core/data/learned-patterns.yaml +3 -0
- package/.aios-core/data/technical-preferences.md +4 -0
- package/.aios-core/data/workflow-patterns.yaml +611 -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 +370 -0
- package/.aios-core/development/agents/analyst.md +195 -0
- package/.aios-core/development/agents/architect.md +363 -0
- package/.aios-core/development/agents/data-engineer.md +468 -0
- package/.aios-core/development/agents/dev.md +403 -0
- package/.aios-core/development/agents/devops.md +410 -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/squad-creator.md +302 -0
- package/.aios-core/development/agents/ux-design-expert.md +471 -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/squad/README.md +112 -0
- package/.aios-core/development/scripts/squad/index.js +123 -0
- package/.aios-core/development/scripts/squad/squad-analyzer.js +638 -0
- package/.aios-core/development/scripts/squad/squad-designer.js +1010 -0
- package/.aios-core/development/scripts/squad/squad-downloader.js +510 -0
- package/.aios-core/development/scripts/squad/squad-extender.js +871 -0
- package/.aios-core/development/scripts/squad/squad-generator.js +1405 -0
- package/.aios-core/development/scripts/squad/squad-loader.js +359 -0
- package/.aios-core/development/scripts/squad/squad-migrator.js +632 -0
- package/.aios-core/development/scripts/squad/squad-publisher.js +629 -0
- package/.aios-core/development/scripts/squad/squad-validator.js +783 -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 +436 -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-brownfield.md +456 -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/analyze-project-structure.md +621 -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-service.md +391 -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 +664 -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/next.md +294 -0
- package/.aios-core/development/tasks/patterns.md +334 -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/search-mcp.md +309 -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 +627 -0
- package/.aios-core/development/tasks/setup-project-docs.md +440 -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/squad-creator-analyze.md +315 -0
- package/.aios-core/development/tasks/squad-creator-create.md +312 -0
- package/.aios-core/development/tasks/squad-creator-design.md +334 -0
- package/.aios-core/development/tasks/squad-creator-download.md +167 -0
- package/.aios-core/development/tasks/squad-creator-extend.md +411 -0
- package/.aios-core/development/tasks/squad-creator-list.md +225 -0
- package/.aios-core/development/tasks/squad-creator-migrate.md +243 -0
- package/.aios-core/development/tasks/squad-creator-publish.md +229 -0
- package/.aios-core/development/tasks/squad-creator-sync-synkra.md +315 -0
- package/.aios-core/development/tasks/squad-creator-validate.md +159 -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/waves.md +205 -0
- package/.aios-core/development/templates/service-template/README.md.hbs +158 -0
- package/.aios-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -0
- package/.aios-core/development/templates/service-template/client.ts.hbs +403 -0
- package/.aios-core/development/templates/service-template/errors.ts.hbs +182 -0
- package/.aios-core/development/templates/service-template/index.ts.hbs +120 -0
- package/.aios-core/development/templates/service-template/jest.config.js +89 -0
- package/.aios-core/development/templates/service-template/package.json.hbs +87 -0
- package/.aios-core/development/templates/service-template/tsconfig.json +45 -0
- package/.aios-core/development/templates/service-template/types.ts.hbs +145 -0
- package/.aios-core/development/templates/squad/agent-template.md +69 -0
- package/.aios-core/development/templates/squad/checklist-template.md +82 -0
- package/.aios-core/development/templates/squad/data-template.yaml +105 -0
- package/.aios-core/development/templates/squad/script-template.js +179 -0
- package/.aios-core/development/templates/squad/task-template.md +125 -0
- package/.aios-core/development/templates/squad/template-template.md +97 -0
- package/.aios-core/development/templates/squad/tool-template.js +103 -0
- package/.aios-core/development/templates/squad/workflow-template.yaml +108 -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/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-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -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/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.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/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 +368 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +308 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +331 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +312 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +74 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +389 -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/ide-sync/README.md +184 -0
- package/.aios-core/infrastructure/scripts/ide-sync/agent-parser.js +295 -0
- package/.aios-core/infrastructure/scripts/ide-sync/index.js +502 -0
- package/.aios-core/infrastructure/scripts/ide-sync/redirect-generator.js +200 -0
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/antigravity.js +105 -0
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/claude-code.js +84 -0
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/cursor.js +94 -0
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/trae.js +125 -0
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/windsurf.js +106 -0
- package/.aios-core/infrastructure/scripts/ide-sync/validator.js +273 -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 +280 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.sh +108 -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/llm-routing/templates/deepseek-proxy.cmd +71 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.sh +65 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.sh +16 -0
- package/.aios-core/infrastructure/scripts/llm-routing/usage-tracker/index.js +549 -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/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 +176 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +168 -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/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 +2338 -0
- package/.aios-core/manifests/schema/manifest-schema.json +190 -0
- package/.aios-core/package.json +103 -0
- package/.aios-core/product/README.md +56 -0
- package/.aios-core/product/checklists/accessibility-wcag-checklist.md +80 -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/component-quality-checklist.md +74 -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/migration-readiness-checklist.md +75 -0
- package/.aios-core/product/checklists/pattern-audit-checklist.md +88 -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/atomic-design-principles.md +108 -0
- package/.aios-core/product/data/brainstorming-techniques.md +37 -0
- package/.aios-core/product/data/consolidation-algorithms.md +142 -0
- package/.aios-core/product/data/database-best-practices.md +182 -0
- package/.aios-core/product/data/design-token-best-practices.md +107 -0
- package/.aios-core/product/data/elicitation-methods.md +135 -0
- package/.aios-core/product/data/integration-patterns.md +207 -0
- package/.aios-core/product/data/migration-safety-guide.md +329 -0
- package/.aios-core/product/data/mode-selection-best-practices.md +471 -0
- package/.aios-core/product/data/postgres-tuning-guide.md +300 -0
- package/.aios-core/product/data/rls-security-patterns.md +333 -0
- package/.aios-core/product/data/roi-calculation-guide.md +142 -0
- package/.aios-core/product/data/supabase-patterns.md +330 -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/data/wcag-compliance-guide.md +267 -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 +599 -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/schemas/squad-design-schema.json +299 -0
- package/.aios-core/schemas/squad-schema.json +185 -0
- package/.aios-core/scripts/README.md +122 -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/migrate-framework-docs.sh +300 -0
- package/.aios-core/scripts/session-context-loader.js +45 -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/user-guide.md +1413 -0
- package/.aios-core/utils/aios-validator.js +25 -0
- package/.aios-core/workflow-intelligence/__tests__/confidence-scorer.test.js +334 -0
- package/.aios-core/workflow-intelligence/__tests__/integration.test.js +337 -0
- package/.aios-core/workflow-intelligence/__tests__/suggestion-engine.test.js +433 -0
- package/.aios-core/workflow-intelligence/__tests__/wave-analyzer.test.js +458 -0
- package/.aios-core/workflow-intelligence/__tests__/workflow-registry.test.js +302 -0
- package/.aios-core/workflow-intelligence/engine/confidence-scorer.js +305 -0
- package/.aios-core/workflow-intelligence/engine/output-formatter.js +285 -0
- package/.aios-core/workflow-intelligence/engine/suggestion-engine.js +603 -0
- package/.aios-core/workflow-intelligence/engine/wave-analyzer.js +676 -0
- package/.aios-core/workflow-intelligence/index.js +327 -0
- package/.aios-core/workflow-intelligence/learning/capture-hook.js +147 -0
- package/.aios-core/workflow-intelligence/learning/index.js +230 -0
- package/.aios-core/workflow-intelligence/learning/pattern-capture.js +340 -0
- package/.aios-core/workflow-intelligence/learning/pattern-store.js +498 -0
- package/.aios-core/workflow-intelligence/learning/pattern-validator.js +309 -0
- package/.aios-core/workflow-intelligence/registry/workflow-registry.js +358 -0
- package/.aios-core/working-in-the-brownfield.md +361 -0
- package/.claude/rules/mcp-usage.md +176 -0
- package/LICENSE +48 -0
- package/README.md +705 -0
- package/bin/aios-init.js +867 -0
- package/bin/aios-minimal.js +26 -0
- package/bin/aios.js +280 -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/package.json +126 -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 +270 -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 +329 -0
- package/packages/installer/tests/integration/wizard-detection.test.js +351 -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 +187 -0
- package/scripts/generate-install-manifest.js +337 -0
- package/scripts/validate-manifest.js +265 -0
- package/src/config/ide-configs.js +189 -0
- package/src/installer/aios-core-installer.js +319 -0
- package/src/installer/brownfield-upgrader.js +438 -0
- package/src/installer/dependency-installer.js +335 -0
- package/src/installer/file-hasher.js +137 -0
- package/src/utils/aios-colors.js +234 -0
- package/src/wizard/feedback.js +218 -0
- package/src/wizard/ide-config-generator.js +536 -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/diagnose-installation.js +266 -0
- package/tools/diagnose-npx-issue.ps1 +96 -0
- package/tools/quick-diagnose.cmd +85 -0
- package/tools/quick-diagnose.ps1 +117 -0
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency Installer Module
|
|
3
|
+
*
|
|
4
|
+
* Story 1.7: Dependency Installation
|
|
5
|
+
* Handles automatic installation of npm dependencies with package manager detection,
|
|
6
|
+
* retry logic, and offline mode support.
|
|
7
|
+
*
|
|
8
|
+
* @module installer/dependency-installer
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const fs = require('fs');
|
|
12
|
+
const path = require('path');
|
|
13
|
+
const { spawn } = require('child_process');
|
|
14
|
+
const ora = require('ora');
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Allowed package managers (Security: Command injection prevention)
|
|
18
|
+
* @constant {string[]}
|
|
19
|
+
*/
|
|
20
|
+
const ALLOWED_PACKAGE_MANAGERS = ['npm', 'yarn', 'pnpm', 'bun'];
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Package manager lock file mapping
|
|
24
|
+
* Priority order: bun > pnpm > yarn > npm
|
|
25
|
+
* @constant {Object}
|
|
26
|
+
*/
|
|
27
|
+
const LOCK_FILES = {
|
|
28
|
+
'bun.lockb': 'bun',
|
|
29
|
+
'pnpm-lock.yaml': 'pnpm',
|
|
30
|
+
'yarn.lock': 'yarn',
|
|
31
|
+
'package-lock.json': 'npm',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Detect package manager from lock files
|
|
36
|
+
*
|
|
37
|
+
* @param {string} [projectPath=process.cwd()] - Project directory path
|
|
38
|
+
* @returns {string} Detected package manager ('npm', 'yarn', 'pnpm', 'bun')
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* const pm = detectPackageManager();
|
|
42
|
+
* console.log(pm); // 'npm'
|
|
43
|
+
*/
|
|
44
|
+
function detectPackageManager(projectPath = process.cwd()) {
|
|
45
|
+
// Check for lock files in priority order
|
|
46
|
+
for (const [lockFile, packageManager] of Object.entries(LOCK_FILES)) {
|
|
47
|
+
const lockPath = path.join(projectPath, lockFile);
|
|
48
|
+
if (fs.existsSync(lockPath)) {
|
|
49
|
+
return packageManager;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Fallback to npm
|
|
54
|
+
return 'npm';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Validate package manager against whitelist (Security check)
|
|
59
|
+
*
|
|
60
|
+
* @param {string} packageManager - Package manager to validate
|
|
61
|
+
* @throws {Error} If package manager is not in whitelist
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* validatePackageManager('npm'); // OK
|
|
65
|
+
* validatePackageManager('malicious'); // Throws Error
|
|
66
|
+
*/
|
|
67
|
+
function validatePackageManager(packageManager) {
|
|
68
|
+
if (!ALLOWED_PACKAGE_MANAGERS.includes(packageManager)) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
`Invalid package manager: ${packageManager}. ` +
|
|
71
|
+
`Allowed: ${ALLOWED_PACKAGE_MANAGERS.join(', ')}`,
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Check if node_modules exists and has contents (Offline mode detection)
|
|
78
|
+
*
|
|
79
|
+
* @param {string} [projectPath=process.cwd()] - Project directory path
|
|
80
|
+
* @returns {boolean} True if node_modules exists with packages
|
|
81
|
+
*/
|
|
82
|
+
function hasExistingDependencies(projectPath = process.cwd()) {
|
|
83
|
+
const nodeModulesPath = path.join(projectPath, 'node_modules');
|
|
84
|
+
|
|
85
|
+
if (!fs.existsSync(nodeModulesPath)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
const contents = fs.readdirSync(nodeModulesPath);
|
|
91
|
+
// node_modules exists and has more than just .bin or .cache
|
|
92
|
+
return contents.length > 0 && contents.some(item => !item.startsWith('.'));
|
|
93
|
+
} catch {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Execute package manager install command
|
|
100
|
+
*
|
|
101
|
+
* @param {string} packageManager - Package manager to use
|
|
102
|
+
* @param {string} [projectPath=process.cwd()] - Project directory path
|
|
103
|
+
* @returns {Promise<Object>} Result object with success status
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* const result = await executeInstall('npm');
|
|
107
|
+
* if (result.success) {
|
|
108
|
+
* console.log('Dependencies installed!');
|
|
109
|
+
* }
|
|
110
|
+
*/
|
|
111
|
+
async function executeInstall(packageManager, projectPath = process.cwd()) {
|
|
112
|
+
return new Promise((resolve) => {
|
|
113
|
+
// Security: Use args array to prevent shell injection
|
|
114
|
+
const args = ['install'];
|
|
115
|
+
|
|
116
|
+
// Windows requires shell: true because npm is actually npm.cmd
|
|
117
|
+
// On Unix, we can use shell: false for better security
|
|
118
|
+
const isWindows = process.platform === 'win32';
|
|
119
|
+
|
|
120
|
+
// Spawn process
|
|
121
|
+
const child = spawn(packageManager, args, {
|
|
122
|
+
cwd: projectPath,
|
|
123
|
+
stdio: 'inherit', // Show real-time output to user
|
|
124
|
+
shell: isWindows, // Windows needs shell to find npm.cmd, Unix doesn't
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
child.on('close', (code) => {
|
|
128
|
+
if (code === 0) {
|
|
129
|
+
resolve({ success: true, exitCode: 0 });
|
|
130
|
+
} else {
|
|
131
|
+
resolve({
|
|
132
|
+
success: false,
|
|
133
|
+
exitCode: code,
|
|
134
|
+
error: `${packageManager} install exited with code ${code}`,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
child.on('error', (error) => {
|
|
140
|
+
resolve({
|
|
141
|
+
success: false,
|
|
142
|
+
error: error.message,
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Categorize error type for better user guidance
|
|
150
|
+
*
|
|
151
|
+
* @param {Error|string} error - Error object or message
|
|
152
|
+
* @returns {Object} Error category and suggested solution
|
|
153
|
+
*/
|
|
154
|
+
function categorizeError(error) {
|
|
155
|
+
const errorMsg = typeof error === 'string' ? error : error.message;
|
|
156
|
+
|
|
157
|
+
// Network errors
|
|
158
|
+
if (errorMsg.includes('ENOTFOUND') || errorMsg.includes('ETIMEDOUT') ||
|
|
159
|
+
errorMsg.includes('EAI_AGAIN') || errorMsg.includes('fetch failed')) {
|
|
160
|
+
return {
|
|
161
|
+
category: 'network',
|
|
162
|
+
message: 'Network connection failed',
|
|
163
|
+
solution: 'Check your internet connection and try again',
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Permission errors
|
|
168
|
+
if (errorMsg.includes('EACCES') || errorMsg.includes('EPERM') ||
|
|
169
|
+
errorMsg.includes('permission denied')) {
|
|
170
|
+
return {
|
|
171
|
+
category: 'permission',
|
|
172
|
+
message: 'Permission denied',
|
|
173
|
+
solution: 'Try running with elevated permissions or check folder ownership',
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Disk space errors
|
|
178
|
+
if (errorMsg.includes('ENOSPC') || errorMsg.includes('no space')) {
|
|
179
|
+
return {
|
|
180
|
+
category: 'diskspace',
|
|
181
|
+
message: 'Insufficient disk space',
|
|
182
|
+
solution: 'Free up disk space and try again',
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Generic error
|
|
187
|
+
return {
|
|
188
|
+
category: 'unknown',
|
|
189
|
+
message: errorMsg,
|
|
190
|
+
solution: 'Check the error message above for details',
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Sleep utility for retry backoff
|
|
196
|
+
*
|
|
197
|
+
* @param {number} ms - Milliseconds to sleep
|
|
198
|
+
* @returns {Promise<void>}
|
|
199
|
+
*/
|
|
200
|
+
function sleep(ms) {
|
|
201
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Install dependencies with retry logic
|
|
206
|
+
*
|
|
207
|
+
* @param {string} packageManager - Package manager to use
|
|
208
|
+
* @param {string} projectPath - Project directory path
|
|
209
|
+
* @param {number} maxRetries - Maximum retry attempts
|
|
210
|
+
* @param {number} attempt - Current attempt number (internal)
|
|
211
|
+
* @returns {Promise<Object>} Result object
|
|
212
|
+
*/
|
|
213
|
+
async function installWithRetry(packageManager, projectPath, maxRetries = 3, attempt = 1) {
|
|
214
|
+
const result = await executeInstall(packageManager, projectPath);
|
|
215
|
+
|
|
216
|
+
if (result.success) {
|
|
217
|
+
return result;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// Max retries reached
|
|
221
|
+
if (attempt >= maxRetries) {
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Exponential backoff: 2s, 4s, 8s
|
|
226
|
+
const delay = Math.pow(2, attempt) * 1000;
|
|
227
|
+
console.log(`\n⏳ Retrying in ${delay / 1000}s... (Attempt ${attempt + 1}/${maxRetries})`);
|
|
228
|
+
await sleep(delay);
|
|
229
|
+
|
|
230
|
+
return installWithRetry(packageManager, projectPath, maxRetries, attempt + 1);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Main installation function with all features
|
|
235
|
+
*
|
|
236
|
+
* @param {Object} options - Installation options
|
|
237
|
+
* @param {string} [options.packageManager] - Package manager override
|
|
238
|
+
* @param {string} [options.projectPath=process.cwd()] - Project directory
|
|
239
|
+
* @param {boolean} [options.skipRetry=false] - Skip retry logic
|
|
240
|
+
* @param {number} [options.maxRetries=3] - Maximum retry attempts
|
|
241
|
+
* @returns {Promise<Object>} Installation result
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* const result = await installDependencies({
|
|
245
|
+
* packageManager: 'npm',
|
|
246
|
+
* projectPath: '/path/to/project'
|
|
247
|
+
* });
|
|
248
|
+
*/
|
|
249
|
+
async function installDependencies(options = {}) {
|
|
250
|
+
const {
|
|
251
|
+
packageManager: pmOverride,
|
|
252
|
+
projectPath = process.cwd(),
|
|
253
|
+
skipRetry = false,
|
|
254
|
+
maxRetries = 3,
|
|
255
|
+
} = options;
|
|
256
|
+
|
|
257
|
+
let spinner;
|
|
258
|
+
|
|
259
|
+
try {
|
|
260
|
+
// Detect or use provided package manager
|
|
261
|
+
const packageManager = pmOverride || detectPackageManager(projectPath);
|
|
262
|
+
|
|
263
|
+
// Security: Validate package manager
|
|
264
|
+
validatePackageManager(packageManager);
|
|
265
|
+
|
|
266
|
+
// Check for offline mode (AC6)
|
|
267
|
+
if (hasExistingDependencies(projectPath)) {
|
|
268
|
+
console.log('\n📦 Existing dependencies found (offline mode)');
|
|
269
|
+
console.log(' Skipping installation - using cached node_modules');
|
|
270
|
+
return {
|
|
271
|
+
success: true,
|
|
272
|
+
offlineMode: true,
|
|
273
|
+
packageManager,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// Start installation
|
|
278
|
+
spinner = ora(`Installing dependencies with ${packageManager}...`).start();
|
|
279
|
+
|
|
280
|
+
// Execute with or without retry
|
|
281
|
+
let result;
|
|
282
|
+
if (skipRetry) {
|
|
283
|
+
result = await executeInstall(packageManager, projectPath);
|
|
284
|
+
} else {
|
|
285
|
+
result = await installWithRetry(packageManager, projectPath, maxRetries);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
if (result.success) {
|
|
289
|
+
spinner.succeed(`Dependencies installed with ${packageManager}!`);
|
|
290
|
+
return {
|
|
291
|
+
success: true,
|
|
292
|
+
packageManager,
|
|
293
|
+
};
|
|
294
|
+
} else {
|
|
295
|
+
spinner.fail('Installation failed');
|
|
296
|
+
|
|
297
|
+
// Categorize error for user guidance
|
|
298
|
+
const errorInfo = categorizeError(result.error);
|
|
299
|
+
|
|
300
|
+
return {
|
|
301
|
+
success: false,
|
|
302
|
+
packageManager,
|
|
303
|
+
error: result.error,
|
|
304
|
+
errorCategory: errorInfo.category,
|
|
305
|
+
errorMessage: errorInfo.message,
|
|
306
|
+
solution: errorInfo.solution,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
} catch (error) {
|
|
310
|
+
if (spinner) {
|
|
311
|
+
spinner.fail('Installation failed');
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
const errorInfo = categorizeError(error);
|
|
315
|
+
|
|
316
|
+
return {
|
|
317
|
+
success: false,
|
|
318
|
+
error: error.message,
|
|
319
|
+
errorCategory: errorInfo.category,
|
|
320
|
+
errorMessage: errorInfo.message,
|
|
321
|
+
solution: errorInfo.solution,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
module.exports = {
|
|
327
|
+
detectPackageManager,
|
|
328
|
+
validatePackageManager,
|
|
329
|
+
hasExistingDependencies,
|
|
330
|
+
installDependencies,
|
|
331
|
+
// Export for testing
|
|
332
|
+
executeInstall,
|
|
333
|
+
categorizeError,
|
|
334
|
+
installWithRetry,
|
|
335
|
+
};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Hasher Utility
|
|
3
|
+
* Cross-platform file hashing with line ending normalization
|
|
4
|
+
*
|
|
5
|
+
* @module src/installer/file-hasher
|
|
6
|
+
* @story 6.18 - Dynamic Manifest & Brownfield Upgrade System
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const crypto = require('crypto');
|
|
10
|
+
const fs = require('fs-extra');
|
|
11
|
+
const path = require('path');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* List of file extensions that should be treated as binary (not normalized)
|
|
15
|
+
*/
|
|
16
|
+
const BINARY_EXTENSIONS = [
|
|
17
|
+
'.png', '.jpg', '.jpeg', '.gif', '.ico', '.webp', '.svg',
|
|
18
|
+
'.pdf', '.zip', '.tar', '.gz', '.7z',
|
|
19
|
+
'.woff', '.woff2', '.ttf', '.eot',
|
|
20
|
+
'.mp3', '.mp4', '.wav', '.avi',
|
|
21
|
+
'.exe', '.dll', '.so', '.dylib',
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Check if a file should be treated as binary based on extension
|
|
26
|
+
* @param {string} filePath - Path to the file
|
|
27
|
+
* @returns {boolean} - True if file is binary
|
|
28
|
+
*/
|
|
29
|
+
function isBinaryFile(filePath) {
|
|
30
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
31
|
+
return BINARY_EXTENSIONS.includes(ext);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Normalize line endings from CRLF to LF for consistent cross-platform hashing
|
|
36
|
+
* @param {string} content - File content as string
|
|
37
|
+
* @returns {string} - Normalized content with LF line endings
|
|
38
|
+
*/
|
|
39
|
+
function normalizeLineEndings(content) {
|
|
40
|
+
return content.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Remove UTF-8 BOM if present
|
|
45
|
+
* @param {string} content - File content
|
|
46
|
+
* @returns {string} - Content without BOM
|
|
47
|
+
*/
|
|
48
|
+
function removeBOM(content) {
|
|
49
|
+
if (content.charCodeAt(0) === 0xFEFF) {
|
|
50
|
+
return content.slice(1);
|
|
51
|
+
}
|
|
52
|
+
return content;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Compute SHA256 hash of a file with cross-platform normalization
|
|
57
|
+
* Text files have line endings normalized for consistent hashes across OS
|
|
58
|
+
* Binary files are hashed as-is
|
|
59
|
+
*
|
|
60
|
+
* @param {string} filePath - Absolute path to the file
|
|
61
|
+
* @returns {string} - SHA256 hash as hex string
|
|
62
|
+
* @throws {Error} - If file cannot be read
|
|
63
|
+
*/
|
|
64
|
+
function hashFile(filePath) {
|
|
65
|
+
if (!fs.existsSync(filePath)) {
|
|
66
|
+
throw new Error(`File not found: ${filePath}`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const stats = fs.statSync(filePath);
|
|
70
|
+
if (stats.isDirectory()) {
|
|
71
|
+
throw new Error(`Cannot hash directory: ${filePath}`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
let content;
|
|
75
|
+
|
|
76
|
+
if (isBinaryFile(filePath)) {
|
|
77
|
+
// Binary files: hash raw bytes
|
|
78
|
+
content = fs.readFileSync(filePath);
|
|
79
|
+
} else {
|
|
80
|
+
// Text files: normalize line endings and remove BOM
|
|
81
|
+
const rawContent = fs.readFileSync(filePath, 'utf8');
|
|
82
|
+
const withoutBOM = removeBOM(rawContent);
|
|
83
|
+
const normalized = normalizeLineEndings(withoutBOM);
|
|
84
|
+
content = Buffer.from(normalized, 'utf8');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return crypto.createHash('sha256').update(content).digest('hex');
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Compute SHA256 hash of a string (for manifest integrity)
|
|
92
|
+
* @param {string} content - String content to hash
|
|
93
|
+
* @returns {string} - SHA256 hash as hex string
|
|
94
|
+
*/
|
|
95
|
+
function hashString(content) {
|
|
96
|
+
return crypto.createHash('sha256').update(content, 'utf8').digest('hex');
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Compare two hashes for equality
|
|
101
|
+
* @param {string} hash1 - First hash
|
|
102
|
+
* @param {string} hash2 - Second hash
|
|
103
|
+
* @returns {boolean} - True if hashes match
|
|
104
|
+
*/
|
|
105
|
+
function hashesMatch(hash1, hash2) {
|
|
106
|
+
if (!hash1 || !hash2) return false;
|
|
107
|
+
return hash1.toLowerCase() === hash2.toLowerCase();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Get file metadata including hash
|
|
112
|
+
* @param {string} filePath - Absolute path to the file
|
|
113
|
+
* @param {string} basePath - Base path for relative path calculation
|
|
114
|
+
* @returns {Object} - File metadata object
|
|
115
|
+
*/
|
|
116
|
+
function getFileMetadata(filePath, basePath) {
|
|
117
|
+
const stats = fs.statSync(filePath);
|
|
118
|
+
const relativePath = path.relative(basePath, filePath).replace(/\\/g, '/');
|
|
119
|
+
|
|
120
|
+
return {
|
|
121
|
+
path: relativePath,
|
|
122
|
+
hash: `sha256:${hashFile(filePath)}`,
|
|
123
|
+
size: stats.size,
|
|
124
|
+
isBinary: isBinaryFile(filePath),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
module.exports = {
|
|
129
|
+
hashFile,
|
|
130
|
+
hashString,
|
|
131
|
+
hashesMatch,
|
|
132
|
+
getFileMetadata,
|
|
133
|
+
isBinaryFile,
|
|
134
|
+
normalizeLineEndings,
|
|
135
|
+
removeBOM,
|
|
136
|
+
BINARY_EXTENSIONS,
|
|
137
|
+
};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AIOS Color Palette v2.1
|
|
3
|
+
*
|
|
4
|
+
* Brand-inspired color system for CLI tools and terminal output.
|
|
5
|
+
* Colors derived from AIOS logo gradient (magenta → orange → purple → blue)
|
|
6
|
+
* Primary purple references ClickUp brand color.
|
|
7
|
+
*
|
|
8
|
+
* @see docs/standards/AIOS-COLOR-PALETTE-V2.1.md
|
|
9
|
+
* @module aios-colors
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const chalk = require('chalk');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* AIOS Brand Color Palette
|
|
16
|
+
* All colors are WCAG AA compliant on dark terminals
|
|
17
|
+
*/
|
|
18
|
+
const colors = {
|
|
19
|
+
// ============================================
|
|
20
|
+
// CORE BRAND COLORS
|
|
21
|
+
// ============================================
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Primary brand color - ClickUp-inspired purple
|
|
25
|
+
* Usage: Main questions, headers, CTAs, primary actions
|
|
26
|
+
*/
|
|
27
|
+
primary: chalk.hex('#8B5CF6'),
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Secondary brand color - Magenta accent from logo gradient
|
|
31
|
+
* Usage: Important highlights, special emphasis, key information
|
|
32
|
+
*/
|
|
33
|
+
secondary: chalk.hex('#EC4899'),
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Tertiary brand color - Blue accent from logo gradient
|
|
37
|
+
* Usage: Secondary actions, links, complementary elements
|
|
38
|
+
*/
|
|
39
|
+
tertiary: chalk.hex('#3B82F6'),
|
|
40
|
+
|
|
41
|
+
// ============================================
|
|
42
|
+
// FUNCTIONAL COLORS
|
|
43
|
+
// ============================================
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Success state color
|
|
47
|
+
* Usage: Checkmarks, completed steps, success messages
|
|
48
|
+
*/
|
|
49
|
+
success: chalk.hex('#10B981'),
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Warning state color - Orange from logo gradient
|
|
53
|
+
* Usage: Warnings, confirmations, caution states
|
|
54
|
+
*/
|
|
55
|
+
warning: chalk.hex('#F59E0B'),
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Error state color
|
|
59
|
+
* Usage: Errors, critical alerts, validation failures
|
|
60
|
+
*/
|
|
61
|
+
error: chalk.hex('#EF4444'),
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Info state color - Cyan-blue from logo gradient
|
|
65
|
+
* Usage: Info messages, tips, helper text, additional context
|
|
66
|
+
*/
|
|
67
|
+
info: chalk.hex('#06B6D4'),
|
|
68
|
+
|
|
69
|
+
// ============================================
|
|
70
|
+
// NEUTRAL COLORS
|
|
71
|
+
// ============================================
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Muted text color
|
|
75
|
+
* Usage: Subtle text, disabled states, secondary content
|
|
76
|
+
*/
|
|
77
|
+
muted: chalk.hex('#94A3B8'),
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Dim text color
|
|
81
|
+
* Usage: Secondary text, muted content, less important info
|
|
82
|
+
*/
|
|
83
|
+
dim: chalk.hex('#64748B'),
|
|
84
|
+
|
|
85
|
+
// ============================================
|
|
86
|
+
// GRADIENT SYSTEM
|
|
87
|
+
// ============================================
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Brand gradient colors for animations and special effects
|
|
91
|
+
* Matches AIOS logo gradient: magenta → purple → blue
|
|
92
|
+
*/
|
|
93
|
+
gradient: {
|
|
94
|
+
/** Gradient start - Magenta (logo top) */
|
|
95
|
+
start: chalk.hex('#EC4899'),
|
|
96
|
+
|
|
97
|
+
/** Gradient middle - Purple (brand) */
|
|
98
|
+
middle: chalk.hex('#8B5CF6'),
|
|
99
|
+
|
|
100
|
+
/** Gradient end - Blue (logo bottom) */
|
|
101
|
+
end: chalk.hex('#3B82F6'),
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
// ============================================
|
|
105
|
+
// SEMANTIC SHORTCUTS
|
|
106
|
+
// ============================================
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Highlighted text - Bold magenta for key information
|
|
110
|
+
*/
|
|
111
|
+
highlight: chalk.hex('#EC4899').bold,
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Primary branding - Bold purple for AIOS brand moments
|
|
115
|
+
*/
|
|
116
|
+
brandPrimary: chalk.hex('#8B5CF6').bold,
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Secondary branding - Cyan for supporting brand elements
|
|
120
|
+
*/
|
|
121
|
+
brandSecondary: chalk.hex('#06B6D4'),
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Pre-formatted status indicators with color and symbols
|
|
126
|
+
*/
|
|
127
|
+
const status = {
|
|
128
|
+
/** Success indicator: ✓ (green) */
|
|
129
|
+
success: (text) => `${colors.success('✓')} ${text}`,
|
|
130
|
+
|
|
131
|
+
/** Error indicator: ✗ (red) */
|
|
132
|
+
error: (text) => `${colors.error('✗')} ${text}`,
|
|
133
|
+
|
|
134
|
+
/** Warning indicator: ⚠️ (orange) */
|
|
135
|
+
warning: (text) => `${colors.warning('⚠️')} ${text}`,
|
|
136
|
+
|
|
137
|
+
/** Info indicator: ℹ (cyan) */
|
|
138
|
+
info: (text) => `${colors.info('ℹ')} ${text}`,
|
|
139
|
+
|
|
140
|
+
/** Loading indicator: ⏳ (cyan) */
|
|
141
|
+
loading: (text) => `${colors.info('⏳')} ${text}`,
|
|
142
|
+
|
|
143
|
+
/** Skipped indicator: ⊘ (muted) */
|
|
144
|
+
skipped: (text) => `${colors.muted('⊘')} ${text}`,
|
|
145
|
+
|
|
146
|
+
/** Tip indicator: 💡 (info) */
|
|
147
|
+
tip: (text) => `${colors.info('💡')} ${text}`,
|
|
148
|
+
|
|
149
|
+
/** Party indicator: 🎉 (brand primary) */
|
|
150
|
+
celebrate: (text) => `${colors.brandPrimary('🎉')} ${text}`,
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Formatted heading helpers
|
|
155
|
+
*/
|
|
156
|
+
const headings = {
|
|
157
|
+
/** H1 - Brand primary, bold, large spacing */
|
|
158
|
+
h1: (text) => `\n${colors.brandPrimary(text)}\n`,
|
|
159
|
+
|
|
160
|
+
/** H2 - Primary color, bold */
|
|
161
|
+
h2: (text) => `\n${colors.primary.bold(text)}\n`,
|
|
162
|
+
|
|
163
|
+
/** H3 - Primary color */
|
|
164
|
+
h3: (text) => colors.primary(text),
|
|
165
|
+
|
|
166
|
+
/** Section divider */
|
|
167
|
+
divider: () => colors.dim('─'.repeat(50)),
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Formatted list helpers
|
|
172
|
+
*/
|
|
173
|
+
const lists = {
|
|
174
|
+
/** Bullet point (primary) */
|
|
175
|
+
bullet: (text) => `${colors.primary('•')} ${text}`,
|
|
176
|
+
|
|
177
|
+
/** Numbered item (primary) */
|
|
178
|
+
numbered: (num, text) => `${colors.primary(`${num}.`)} ${text}`,
|
|
179
|
+
|
|
180
|
+
/** Checkbox unchecked */
|
|
181
|
+
checkbox: (text, checked = false) => {
|
|
182
|
+
const icon = checked ? colors.success('☑') : colors.muted('☐');
|
|
183
|
+
return `${icon} ${text}`;
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Example usage for documentation
|
|
189
|
+
*/
|
|
190
|
+
const examples = {
|
|
191
|
+
welcome: () => {
|
|
192
|
+
console.log(headings.h1('🎉 Welcome to AIOS v2.1 Installer!'));
|
|
193
|
+
console.log(colors.info('Let\'s configure your project in just a few steps...\n'));
|
|
194
|
+
},
|
|
195
|
+
|
|
196
|
+
question: () => {
|
|
197
|
+
console.log(colors.primary('? Select your project type:'));
|
|
198
|
+
console.log(lists.bullet('Greenfield (new project)'));
|
|
199
|
+
console.log(lists.bullet('Brownfield (existing project)'));
|
|
200
|
+
},
|
|
201
|
+
|
|
202
|
+
progress: () => {
|
|
203
|
+
console.log(status.loading('Installing dependencies...'));
|
|
204
|
+
console.log(status.success('Dependencies installed'));
|
|
205
|
+
console.log(status.loading('Configuring environment...'));
|
|
206
|
+
},
|
|
207
|
+
|
|
208
|
+
feedback: () => {
|
|
209
|
+
console.log(status.success('Configuration complete!'));
|
|
210
|
+
console.log(status.warning('Existing .env found. Overwrite?'));
|
|
211
|
+
console.log(status.error('Invalid path provided'));
|
|
212
|
+
console.log(status.tip('You can change this later in settings'));
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
complete: () => {
|
|
216
|
+
console.log('\n' + headings.divider());
|
|
217
|
+
console.log(status.celebrate('Installation Complete!'));
|
|
218
|
+
console.log(colors.info('Your AIOS project is ready to use.'));
|
|
219
|
+
console.log(headings.divider() + '\n');
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
// Export all utilities
|
|
224
|
+
module.exports = {
|
|
225
|
+
colors,
|
|
226
|
+
status,
|
|
227
|
+
headings,
|
|
228
|
+
lists,
|
|
229
|
+
examples,
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
// Also export as default for ESM compatibility
|
|
233
|
+
module.exports.default = module.exports;
|
|
234
|
+
|