aios-core 2.1.6 → 2.2.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/core/README.md +229 -229
- package/.aios-core/core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/core/data/aios-kb.md +923 -923
- package/.aios-core/core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/core/docs/component-creation-guide.md +457 -457
- package/.aios-core/core/docs/session-update-pattern.md +307 -307
- package/.aios-core/core/docs/template-syntax.md +266 -266
- package/.aios-core/core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/core/elicitation/elicitation-engine.js +1 -1
- package/.aios-core/core/index.esm.js +42 -42
- package/.aios-core/core/index.js +1 -1
- package/.aios-core/core/migration/migration-config.yaml +83 -83
- package/.aios-core/core/migration/module-mapping.yaml +89 -89
- package/.aios-core/core/quality-gates/layer2-pr-automation.js +1 -1
- package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -86
- package/.aios-core/core/registry/README.md +179 -179
- package/.aios-core/core/utils/security-utils.js +1 -1
- package/.aios-core/core-config.yaml +391 -382
- package/.aios-core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/data/aios-kb.md +923 -923
- package/.aios-core/data/technical-preferences.md +3 -3
- package/.aios-core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/development/README.md +142 -142
- package/.aios-core/development/agent-teams/team-all.yaml +15 -15
- package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -18
- package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -10
- package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -13
- package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -155
- package/.aios-core/development/agents/aios-master.md +339 -339
- package/.aios-core/development/agents/analyst.md +195 -195
- package/.aios-core/development/agents/architect.md +359 -359
- package/.aios-core/development/agents/data-engineer.md +468 -468
- package/.aios-core/development/agents/dev.md +390 -390
- package/.aios-core/development/agents/devops.md +398 -398
- package/.aios-core/development/agents/pm.md +198 -198
- package/.aios-core/development/agents/po.md +256 -256
- package/.aios-core/development/agents/qa.md +312 -312
- package/.aios-core/development/agents/sm.md +220 -220
- package/.aios-core/development/agents/ux-design-expert.md +451 -451
- package/.aios-core/development/scripts/greeting-config-cli.js +85 -85
- package/.aios-core/development/tasks/add-mcp.md +319 -319
- package/.aios-core/development/tasks/advanced-elicitation.md +318 -318
- package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +341 -341
- package/.aios-core/development/tasks/analyze-framework.md +696 -696
- package/.aios-core/development/tasks/analyze-performance.md +637 -637
- package/.aios-core/development/tasks/apply-qa-fixes.md +340 -340
- package/.aios-core/development/tasks/architect-analyze-impact.md +826 -826
- package/.aios-core/development/tasks/audit-codebase.md +429 -429
- package/.aios-core/development/tasks/audit-tailwind-config.md +270 -270
- package/.aios-core/development/tasks/audit-utilities.md +358 -358
- package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -286
- package/.aios-core/development/tasks/brownfield-create-epic.md +485 -485
- package/.aios-core/development/tasks/brownfield-create-story.md +356 -356
- package/.aios-core/development/tasks/build-component.md +478 -478
- package/.aios-core/development/tasks/calculate-roi.md +455 -455
- package/.aios-core/development/tasks/ci-cd-configuration.md +764 -764
- package/.aios-core/development/tasks/cleanup-utilities.md +670 -670
- package/.aios-core/development/tasks/collaborative-edit.md +1108 -1108
- package/.aios-core/development/tasks/compose-molecule.md +284 -284
- package/.aios-core/development/tasks/consolidate-patterns.md +414 -414
- package/.aios-core/development/tasks/correct-course.md +279 -279
- package/.aios-core/development/tasks/create-agent.md +321 -321
- package/.aios-core/development/tasks/create-brownfield-story.md +726 -726
- package/.aios-core/development/tasks/create-deep-research-prompt.md +498 -498
- package/.aios-core/development/tasks/create-doc.md +316 -316
- package/.aios-core/development/tasks/create-next-story.md +774 -774
- package/.aios-core/development/tasks/create-suite.md +283 -283
- package/.aios-core/development/tasks/create-task.md +371 -371
- package/.aios-core/development/tasks/create-workflow.md +370 -370
- package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -572
- package/.aios-core/development/tasks/db-apply-migration.md +381 -381
- package/.aios-core/development/tasks/db-bootstrap.md +642 -642
- package/.aios-core/development/tasks/db-domain-modeling.md +693 -693
- package/.aios-core/development/tasks/db-dry-run.md +293 -293
- package/.aios-core/development/tasks/db-env-check.md +260 -260
- package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -663
- package/.aios-core/development/tasks/db-explain.md +631 -631
- package/.aios-core/development/tasks/db-impersonate.md +495 -495
- package/.aios-core/development/tasks/db-load-csv.md +593 -593
- package/.aios-core/development/tasks/db-policy-apply.md +653 -653
- package/.aios-core/development/tasks/db-rls-audit.md +411 -411
- package/.aios-core/development/tasks/db-rollback.md +739 -739
- package/.aios-core/development/tasks/db-run-sql.md +613 -613
- package/.aios-core/development/tasks/db-schema-audit.md +1011 -1011
- package/.aios-core/development/tasks/db-seed.md +390 -390
- package/.aios-core/development/tasks/db-smoke-test.md +351 -351
- package/.aios-core/development/tasks/db-snapshot.md +569 -569
- package/.aios-core/development/tasks/db-supabase-setup.md +712 -712
- package/.aios-core/development/tasks/db-verify-order.md +515 -515
- package/.aios-core/development/tasks/deprecate-component.md +956 -956
- package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -318
- package/.aios-core/development/tasks/dev-backlog-debt.md +469 -469
- package/.aios-core/development/tasks/dev-develop-story.md +846 -846
- package/.aios-core/development/tasks/dev-improve-code-quality.md +872 -872
- package/.aios-core/development/tasks/dev-optimize-performance.md +1033 -1033
- package/.aios-core/development/tasks/dev-suggest-refactoring.md +870 -870
- package/.aios-core/development/tasks/dev-validate-next-story.md +348 -348
- package/.aios-core/development/tasks/document-project.md +552 -552
- package/.aios-core/development/tasks/environment-bootstrap.md +1311 -1311
- package/.aios-core/development/tasks/execute-checklist.md +301 -301
- package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -274
- package/.aios-core/development/tasks/extend-pattern.md +269 -269
- package/.aios-core/development/tasks/extract-tokens.md +467 -467
- package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -518
- package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +260 -260
- package/.aios-core/development/tasks/generate-documentation.md +284 -284
- package/.aios-core/development/tasks/generate-migration-strategy.md +522 -522
- package/.aios-core/development/tasks/generate-shock-report.md +501 -501
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -427
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -733
- package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -374
- package/.aios-core/development/tasks/github-devops-version-management.md +483 -483
- package/.aios-core/development/tasks/improve-self.md +822 -822
- package/.aios-core/development/tasks/index-docs.md +387 -387
- package/.aios-core/development/tasks/init-project-status.md +506 -506
- package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -314
- package/.aios-core/development/tasks/kb-mode-interaction.md +283 -283
- package/.aios-core/development/tasks/learn-patterns.md +900 -900
- package/.aios-core/development/tasks/mcp-workflow.md +437 -437
- package/.aios-core/development/tasks/modify-agent.md +381 -381
- package/.aios-core/development/tasks/modify-task.md +424 -424
- package/.aios-core/development/tasks/modify-workflow.md +465 -465
- package/.aios-core/development/tasks/po-backlog-add.md +370 -370
- package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -523
- package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -540
- package/.aios-core/development/tasks/po-pull-story.md +316 -316
- package/.aios-core/development/tasks/po-stories-index.md +351 -351
- package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -457
- package/.aios-core/development/tasks/po-sync-story.md +303 -303
- package/.aios-core/development/tasks/pr-automation.md +701 -701
- package/.aios-core/development/tasks/propose-modification.md +842 -842
- package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -425
- package/.aios-core/development/tasks/qa-gate.md +373 -373
- package/.aios-core/development/tasks/qa-generate-tests.md +1174 -1174
- package/.aios-core/development/tasks/qa-nfr-assess.md +557 -557
- package/.aios-core/development/tasks/qa-review-proposal.md +1157 -1157
- package/.aios-core/development/tasks/qa-review-story.md +682 -682
- package/.aios-core/development/tasks/qa-risk-profile.md +566 -566
- package/.aios-core/development/tasks/qa-run-tests.md +277 -277
- package/.aios-core/development/tasks/qa-test-design.md +387 -387
- package/.aios-core/development/tasks/qa-trace-requirements.md +476 -476
- package/.aios-core/development/tasks/release-management.md +723 -723
- package/.aios-core/development/tasks/security-audit.md +554 -554
- package/.aios-core/development/tasks/security-scan.md +790 -790
- package/.aios-core/development/tasks/setup-database.md +741 -741
- package/.aios-core/development/tasks/setup-design-system.md +462 -462
- package/.aios-core/development/tasks/setup-github.md +874 -874
- package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
- package/.aios-core/development/tasks/setup-mcp-docker.md +584 -584
- package/.aios-core/development/tasks/setup-project-docs.md +1 -1
- package/.aios-core/development/tasks/shard-doc.md +537 -537
- package/.aios-core/development/tasks/sm-create-next-story.md +480 -480
- package/.aios-core/development/tasks/sync-documentation.md +864 -864
- package/.aios-core/development/tasks/tailwind-upgrade.md +294 -294
- package/.aios-core/development/tasks/test-as-user.md +621 -621
- package/.aios-core/development/tasks/test-validation-task.md +171 -171
- package/.aios-core/development/tasks/undo-last.md +346 -346
- package/.aios-core/development/tasks/update-manifest.md +409 -409
- package/.aios-core/development/tasks/ux-create-wireframe.md +617 -617
- package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -672
- package/.aios-core/development/tasks/ux-user-research.md +559 -559
- package/.aios-core/development/tasks/validate-next-story.md +422 -422
- package/.aios-core/development/workflows/README.md +83 -83
- package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -297
- package/.aios-core/development/workflows/brownfield-service.yaml +187 -187
- package/.aios-core/development/workflows/brownfield-ui.yaml +197 -197
- package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -333
- package/.aios-core/development/workflows/greenfield-service.yaml +206 -206
- package/.aios-core/development/workflows/greenfield-ui.yaml +235 -235
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/docs/component-creation-guide.md +457 -457
- package/.aios-core/docs/session-update-pattern.md +307 -307
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -572
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -185
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -354
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -1963
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -821
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -1190
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -439
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -1339
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -5398
- package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -697
- package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -511
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -556
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -210
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -550
- package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -1414
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -523
- package/.aios-core/docs/template-syntax.md +266 -266
- package/.aios-core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/index.esm.js +15 -15
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/README.md +126 -126
- package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -59
- package/.aios-core/infrastructure/scripts/approval-workflow.js +1 -1
- package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
- package/.aios-core/infrastructure/scripts/component-generator.js +3 -3
- package/.aios-core/infrastructure/scripts/component-metadata.js +1 -1
- package/.aios-core/infrastructure/scripts/component-search.js +1 -1
- package/.aios-core/infrastructure/scripts/coverage-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/framework-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/improvement-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +26 -13
- 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/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 +1 -1
- package/.aios-core/infrastructure/scripts/performance-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -134
- package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
- package/.aios-core/infrastructure/scripts/template-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/template-validator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-generator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1 -1
- package/.aios-core/infrastructure/scripts/transaction-manager.js +1 -1
- package/.aios-core/infrastructure/scripts/usage-analytics.js +1 -1
- package/.aios-core/infrastructure/scripts/visual-impact-generator.js +2 -2
- package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -109
- package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -621
- package/.aios-core/infrastructure/tools/README.md +222 -222
- package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -200
- package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -260
- package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -224
- package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -261
- package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -127
- package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -534
- package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -78
- package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -180
- package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -930
- package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -551
- package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -808
- package/.aios-core/install-manifest.yaml +347 -347
- package/.aios-core/product/README.md +56 -56
- package/.aios-core/product/checklists/accessibility-wcag-checklist.md +80 -0
- package/.aios-core/product/checklists/architect-checklist.md +443 -443
- package/.aios-core/product/checklists/change-checklist.md +182 -182
- package/.aios-core/product/checklists/component-quality-checklist.md +74 -0
- package/.aios-core/product/checklists/database-design-checklist.md +119 -119
- package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -97
- package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -99
- 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 +375 -375
- package/.aios-core/product/checklists/po-master-checklist.md +441 -441
- package/.aios-core/product/checklists/pre-push-checklist.md +108 -108
- package/.aios-core/product/checklists/release-checklist.md +122 -122
- package/.aios-core/product/checklists/story-dod-checklist.md +101 -101
- package/.aios-core/product/checklists/story-draft-checklist.md +215 -215
- package/.aios-core/product/data/atomic-design-principles.md +108 -0
- package/.aios-core/product/data/brainstorming-techniques.md +36 -36
- 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 +134 -134
- 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 -471
- 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 +148 -148
- package/.aios-core/product/data/test-priorities-matrix.md +174 -174
- package/.aios-core/product/data/wcag-compliance-guide.md +267 -0
- package/.aios-core/product/templates/1mcp-config.yaml +225 -225
- package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -63
- package/.aios-core/product/templates/activation-instructions-template.md +258 -258
- package/.aios-core/product/templates/agent-template.yaml +120 -120
- package/.aios-core/product/templates/architecture-tmpl.yaml +650 -650
- package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +155 -155
- package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +475 -475
- package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +279 -279
- package/.aios-core/product/templates/changelog-template.md +134 -134
- package/.aios-core/product/templates/command-rationalization-matrix.md +152 -152
- package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +292 -292
- package/.aios-core/product/templates/design-story-tmpl.yaml +587 -587
- package/.aios-core/product/templates/ds-artifact-analysis.md +70 -70
- package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +205 -205
- package/.aios-core/product/templates/front-end-spec-tmpl.yaml +348 -348
- package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +804 -804
- package/.aios-core/product/templates/github-pr-template.md +67 -67
- package/.aios-core/product/templates/gordon-mcp.yaml +140 -140
- package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -221
- package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -84
- package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -92
- package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -85
- package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -86
- package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -104
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -80
- package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -53
- package/.aios-core/product/templates/market-research-tmpl.yaml +251 -251
- package/.aios-core/product/templates/mcp-workflow.js +271 -271
- package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -1022
- package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -524
- package/.aios-core/product/templates/personalized-agent-template.md +258 -258
- package/.aios-core/product/templates/personalized-checklist-template.md +340 -340
- package/.aios-core/product/templates/personalized-task-template-v2.md +905 -905
- package/.aios-core/product/templates/personalized-task-template.md +344 -344
- package/.aios-core/product/templates/personalized-template-file.yaml +322 -322
- package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -460
- package/.aios-core/product/templates/prd-tmpl.yaml +201 -201
- package/.aios-core/product/templates/project-brief-tmpl.yaml +220 -220
- package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -240
- package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -1203
- package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -428
- package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -219
- package/.aios-core/product/templates/story-tmpl.yaml +331 -331
- package/.aios-core/product/templates/task-execution-report.md +495 -495
- package/.aios-core/product/templates/task-template.md +122 -122
- package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -395
- package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -305
- package/.aios-core/product/templates/workflow-template.yaml +133 -133
- package/.aios-core/scripts/README.md +354 -354
- package/.aios-core/scripts/aios-doc-template.md +325 -325
- package/.aios-core/scripts/elicitation-engine.js +1 -1
- package/.aios-core/scripts/test-template-system.js +1 -1
- package/.aios-core/scripts/workflow-management.md +69 -69
- package/.aios-core/user-guide.md +1413 -1413
- package/.aios-core/working-in-the-brownfield.md +361 -361
- package/LICENSE +1 -1
- package/README.md +702 -703
- package/bin/aios-init-old.js +3 -3
- package/bin/aios-init-v4.js +1 -1
- package/bin/aios-init.backup-v1.1.4.js +1 -1
- package/bin/aios-init.js +3 -3
- package/bin/aios.js +279 -279
- package/bin/utils/install-errors.js +339 -339
- package/bin/utils/install-transaction.js +445 -445
- package/index.d.ts +18 -18
- package/index.esm.js +20 -20
- package/index.js +6 -6
- package/package.json +8 -10
- package/packages/installer/src/config/templates/env-template.js +27 -4
- package/packages/installer/src/detection/detect-project-type.js +81 -81
- package/packages/installer/tests/integration/wizard-detection.test.js +8 -6
- package/packages/installer/tests/unit/env-template.test.js +8 -8
- package/src/config/ide-configs.js +1 -1
- package/src/wizard/feedback.js +2 -2
- package/src/wizard/index.js +1 -1
- package/src/wizard/validation/report-generator.js +1 -1
- package/src/wizard/validation/troubleshooting-system.js +13 -13
- package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +0 -122
- package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +0 -89
- package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +0 -780
- package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +0 -950
- package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +0 -425
- package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +0 -132
- package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +0 -381
- package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +0 -203
- package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +0 -24
- package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +0 -51
- package/.aios-core/tasks/find-component.md.legacy +0 -391
- package/.aios-core/tasks/generate-commit-message.md.legacy +0 -426
- package/.aios-core/tasks/generate-migration.md.legacy +0 -382
- package/.aios-core/tasks/rollback-modification.md.legacy +0 -307
- package/.aios-core/tasks/update-tests.md.legacy +0 -283
|
@@ -1,339 +1,339 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Installation Error Messages - User-friendly error communication
|
|
3
|
-
*
|
|
4
|
-
* Provides classified error messages with recovery suggestions
|
|
5
|
-
* for AIOS installer failures.
|
|
6
|
-
*
|
|
7
|
-
* @module bin/utils/install-errors
|
|
8
|
-
* @see Story 1.9 - Error Handling & Rollback
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const chalk = require('chalk');
|
|
12
|
-
const { CRITICAL_ERRORS } = require('./install-transaction');
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Error classification taxonomy
|
|
16
|
-
*/
|
|
17
|
-
const ERROR_CLASSIFICATION = {
|
|
18
|
-
CRITICAL: {
|
|
19
|
-
level: 'CRITICAL',
|
|
20
|
-
color: chalk.red.bold,
|
|
21
|
-
icon: '❌',
|
|
22
|
-
},
|
|
23
|
-
RECOVERABLE: {
|
|
24
|
-
level: 'RECOVERABLE',
|
|
25
|
-
color: chalk.yellow,
|
|
26
|
-
icon: '⚠️',
|
|
27
|
-
},
|
|
28
|
-
WARNING: {
|
|
29
|
-
level: 'WARNING',
|
|
30
|
-
color: chalk.yellow,
|
|
31
|
-
icon: '⚡',
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Error message templates with recovery suggestions
|
|
37
|
-
*/
|
|
38
|
-
const ERROR_MESSAGES = {
|
|
39
|
-
// File system errors
|
|
40
|
-
EACCES: {
|
|
41
|
-
title: 'Permission Denied',
|
|
42
|
-
description: 'Installation failed due to insufficient file system permissions.',
|
|
43
|
-
recovery: [
|
|
44
|
-
'Run the installer with administrator/sudo privileges',
|
|
45
|
-
'Check file permissions for the installation directory',
|
|
46
|
-
'Ensure you have write access to the project folder',
|
|
47
|
-
],
|
|
48
|
-
},
|
|
49
|
-
ENOSPC: {
|
|
50
|
-
title: 'Disk Space Exhausted',
|
|
51
|
-
description: 'Installation failed because the disk is full.',
|
|
52
|
-
recovery: [
|
|
53
|
-
'Free up disk space (at least 500MB recommended)',
|
|
54
|
-
'Delete unnecessary files or move data to another drive',
|
|
55
|
-
'Run the installer again after freeing space',
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
EROFS: {
|
|
59
|
-
title: 'Read-Only File System',
|
|
60
|
-
description: 'Installation failed because the file system is read-only.',
|
|
61
|
-
recovery: [
|
|
62
|
-
'Ensure you are not installing to a read-only volume',
|
|
63
|
-
'Check file system mount options',
|
|
64
|
-
'Choose a different installation directory with write access',
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
ENOTDIR: {
|
|
68
|
-
title: 'Invalid Directory',
|
|
69
|
-
description: 'Installation failed because the path is not a directory.',
|
|
70
|
-
recovery: [
|
|
71
|
-
'Verify the installation path is a valid directory',
|
|
72
|
-
'Remove any files with conflicting names',
|
|
73
|
-
'Create the target directory manually before running installer',
|
|
74
|
-
],
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
// Network errors
|
|
78
|
-
NETWORK_TIMEOUT: {
|
|
79
|
-
title: 'Network Timeout',
|
|
80
|
-
description: 'Installation failed due to network connection timeout.',
|
|
81
|
-
recovery: [
|
|
82
|
-
'Check your internet connection',
|
|
83
|
-
'Try again in a few moments',
|
|
84
|
-
'Use a wired connection if possible',
|
|
85
|
-
'Check if npm registry is accessible: npm config get registry',
|
|
86
|
-
],
|
|
87
|
-
},
|
|
88
|
-
NETWORK_ERROR: {
|
|
89
|
-
title: 'Network Error',
|
|
90
|
-
description: 'Installation failed due to network connectivity issues.',
|
|
91
|
-
recovery: [
|
|
92
|
-
'Verify internet connection is active',
|
|
93
|
-
'Check firewall/proxy settings',
|
|
94
|
-
'Try using a different network',
|
|
95
|
-
],
|
|
96
|
-
},
|
|
97
|
-
|
|
98
|
-
// Package errors
|
|
99
|
-
DEPENDENCY_FAILED: {
|
|
100
|
-
title: 'Dependency Installation Failed',
|
|
101
|
-
description: 'One or more npm dependencies failed to install.',
|
|
102
|
-
recovery: [
|
|
103
|
-
'Clear npm cache: npm cache clean --force',
|
|
104
|
-
'Delete node_modules and package-lock.json',
|
|
105
|
-
'Run: npm install manually',
|
|
106
|
-
'Check npm version compatibility: npm --version',
|
|
107
|
-
],
|
|
108
|
-
},
|
|
109
|
-
PACKAGE_CORRUPTION: {
|
|
110
|
-
title: 'Package Corruption',
|
|
111
|
-
description: 'Installation failed due to corrupted package files.',
|
|
112
|
-
recovery: [
|
|
113
|
-
'Clear npm cache: npm cache clean --force',
|
|
114
|
-
'Verify package integrity with npm audit',
|
|
115
|
-
'Try installing with --force flag',
|
|
116
|
-
],
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
// Configuration errors
|
|
120
|
-
CONFIG_PARSE_ERROR: {
|
|
121
|
-
title: 'Configuration Parse Error',
|
|
122
|
-
description: 'Installation failed due to invalid configuration file syntax.',
|
|
123
|
-
recovery: [
|
|
124
|
-
'Check YAML/JSON syntax in configuration files',
|
|
125
|
-
'Validate config files with a linter',
|
|
126
|
-
'Restore default configuration and retry',
|
|
127
|
-
],
|
|
128
|
-
},
|
|
129
|
-
CONFIG_WRITE_ERROR: {
|
|
130
|
-
title: 'Configuration Write Failed',
|
|
131
|
-
description: 'Installation failed while writing configuration files.',
|
|
132
|
-
recovery: [
|
|
133
|
-
'Check write permissions for config directories',
|
|
134
|
-
'Ensure config directory exists',
|
|
135
|
-
'Check disk space availability',
|
|
136
|
-
],
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
// Git errors
|
|
140
|
-
GIT_CORRUPTION: {
|
|
141
|
-
title: 'Git Repository Corruption',
|
|
142
|
-
description: 'Installation detected git repository corruption.',
|
|
143
|
-
recovery: [
|
|
144
|
-
'Run: git fsck to check repository integrity',
|
|
145
|
-
'Restore from backup if available',
|
|
146
|
-
'Re-initialize git repository: git init (warning: loses history)',
|
|
147
|
-
],
|
|
148
|
-
},
|
|
149
|
-
GIT_CONFLICT: {
|
|
150
|
-
title: 'Git Conflict Detected',
|
|
151
|
-
description: 'Installation failed due to uncommitted changes or conflicts.',
|
|
152
|
-
recovery: [
|
|
153
|
-
'Commit or stash your changes: git stash',
|
|
154
|
-
'Resolve any merge conflicts',
|
|
155
|
-
'Run installer in a clean git state',
|
|
156
|
-
],
|
|
157
|
-
},
|
|
158
|
-
|
|
159
|
-
// Generic errors
|
|
160
|
-
UNKNOWN_ERROR: {
|
|
161
|
-
title: 'Unknown Installation Error',
|
|
162
|
-
description: 'Installation failed due to an unexpected error.',
|
|
163
|
-
recovery: [
|
|
164
|
-
'Check the installation log: .aios-install.log',
|
|
165
|
-
'Review error details in the log file',
|
|
166
|
-
'Report the issue if problem persists',
|
|
167
|
-
'Try running installer again',
|
|
168
|
-
],
|
|
169
|
-
},
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Format error message with classification, description, and recovery steps
|
|
174
|
-
*
|
|
175
|
-
* @param {Error} error - Error object
|
|
176
|
-
* @param {string} [errorCode] - Error code (e.g., 'EACCES', 'NETWORK_TIMEOUT')
|
|
177
|
-
* @returns {string} Formatted error message
|
|
178
|
-
*
|
|
179
|
-
* @example
|
|
180
|
-
* const message = formatErrorMessage(error, 'EACCES');
|
|
181
|
-
* console.error(message);
|
|
182
|
-
*/
|
|
183
|
-
function formatErrorMessage(error, errorCode = null) {
|
|
184
|
-
const code = errorCode || error.code || 'UNKNOWN_ERROR';
|
|
185
|
-
const template = ERROR_MESSAGES[code] || ERROR_MESSAGES.UNKNOWN_ERROR;
|
|
186
|
-
// Derive classification from error code instead of hardcoding CRITICAL
|
|
187
|
-
const classification = getErrorClassification(code);
|
|
188
|
-
|
|
189
|
-
const lines = [];
|
|
190
|
-
lines.push('');
|
|
191
|
-
lines.push(classification.color('═══════════════════════════════════════════════════════'));
|
|
192
|
-
lines.push(classification.color(`${classification.icon} ${template.title}`));
|
|
193
|
-
lines.push(classification.color('═══════════════════════════════════════════════════════'));
|
|
194
|
-
lines.push('');
|
|
195
|
-
lines.push(chalk.white(template.description));
|
|
196
|
-
lines.push('');
|
|
197
|
-
|
|
198
|
-
if (template.recovery && template.recovery.length > 0) {
|
|
199
|
-
lines.push(chalk.cyan.bold('Recovery Steps:'));
|
|
200
|
-
template.recovery.forEach((step, index) => {
|
|
201
|
-
lines.push(chalk.cyan(` ${index + 1}. ${step}`));
|
|
202
|
-
});
|
|
203
|
-
lines.push('');
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
lines.push(chalk.gray('Error Details:'));
|
|
207
|
-
lines.push(chalk.gray(` Code: ${code}`));
|
|
208
|
-
if (error.message && !error.message.includes(template.title)) {
|
|
209
|
-
// Only show technical message if it adds new info
|
|
210
|
-
lines.push(chalk.gray(` Message: ${error.message}`));
|
|
211
|
-
}
|
|
212
|
-
lines.push('');
|
|
213
|
-
lines.push(chalk.gray('Installation log: .aios-install.log'));
|
|
214
|
-
lines.push('');
|
|
215
|
-
|
|
216
|
-
return lines.join('\n');
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* Format rollback message
|
|
221
|
-
*
|
|
222
|
-
* @param {boolean} success - Whether rollback succeeded
|
|
223
|
-
* @param {string[]} [failedFiles] - List of files that failed to restore
|
|
224
|
-
* @returns {string} Formatted rollback message
|
|
225
|
-
*/
|
|
226
|
-
function formatRollbackMessage(success, failedFiles = []) {
|
|
227
|
-
const lines = [];
|
|
228
|
-
lines.push('');
|
|
229
|
-
|
|
230
|
-
if (success) {
|
|
231
|
-
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
232
|
-
lines.push(chalk.green('✅ Rollback Completed Successfully'));
|
|
233
|
-
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
234
|
-
lines.push('');
|
|
235
|
-
lines.push(chalk.white('Your system has been restored to its previous state.'));
|
|
236
|
-
lines.push(chalk.white('No files were modified.'));
|
|
237
|
-
} else {
|
|
238
|
-
lines.push(chalk.red('═══════════════════════════════════════════════════════'));
|
|
239
|
-
lines.push(chalk.red('⚠️ Rollback Completed with Errors'));
|
|
240
|
-
lines.push(chalk.red('═══════════════════════════════════════════════════════'));
|
|
241
|
-
lines.push('');
|
|
242
|
-
lines.push(chalk.yellow('Some files could not be restored automatically.'));
|
|
243
|
-
lines.push('');
|
|
244
|
-
lines.push(chalk.yellow.bold('Manual Recovery Required:'));
|
|
245
|
-
|
|
246
|
-
if (failedFiles.length > 0) {
|
|
247
|
-
failedFiles.forEach((file) => {
|
|
248
|
-
lines.push(chalk.yellow(` - ${file}`));
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
lines.push('');
|
|
253
|
-
lines.push(chalk.cyan('Recovery Steps:'));
|
|
254
|
-
lines.push(chalk.cyan(' 1. Check backup directory: .aios-backup/'));
|
|
255
|
-
lines.push(chalk.cyan(' 2. Manually restore failed files from backups'));
|
|
256
|
-
lines.push(chalk.cyan(' 3. Review installation log: .aios-install.log'));
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
lines.push('');
|
|
260
|
-
return lines.join('\n');
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Format success message (installation complete)
|
|
265
|
-
*
|
|
266
|
-
* @returns {string} Formatted success message
|
|
267
|
-
*/
|
|
268
|
-
function formatSuccessMessage() {
|
|
269
|
-
const lines = [];
|
|
270
|
-
lines.push('');
|
|
271
|
-
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
272
|
-
lines.push(chalk.green('✅ Installation Completed Successfully'));
|
|
273
|
-
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
274
|
-
lines.push('');
|
|
275
|
-
lines.push(chalk.white('AIOS has been installed and configured.'));
|
|
276
|
-
lines.push('');
|
|
277
|
-
lines.push(chalk.cyan.bold('Next Steps:'));
|
|
278
|
-
lines.push(chalk.cyan(' 1. Review installation log: .aios-install.log'));
|
|
279
|
-
lines.push(chalk.cyan(' 2. Verify configuration: aios config --check'));
|
|
280
|
-
lines.push(chalk.cyan(' 3. Run validation: aios validate'));
|
|
281
|
-
lines.push('');
|
|
282
|
-
return lines.join('\n');
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* Sanitize error for user display
|
|
287
|
-
* Removes stack traces and technical details
|
|
288
|
-
*
|
|
289
|
-
* @param {Error} error - Error object
|
|
290
|
-
* @returns {string} User-friendly error message (single line)
|
|
291
|
-
*/
|
|
292
|
-
function sanitizeErrorForUser(error) {
|
|
293
|
-
if (!error) {
|
|
294
|
-
return 'An unknown error occurred';
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// Extract just the message, no stack trace
|
|
298
|
-
const message = error.message || error.toString();
|
|
299
|
-
|
|
300
|
-
// Remove file paths from error messages
|
|
301
|
-
const sanitized = message.replace(/(?:at\s+)?(?:[A-Z]:\\|\/)[^\s:]+:\d+:\d+/g, '[file]');
|
|
302
|
-
|
|
303
|
-
// Remove stack trace lines
|
|
304
|
-
const firstLine = sanitized.split('\n')[0];
|
|
305
|
-
|
|
306
|
-
return firstLine;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* Get error classification for an error
|
|
311
|
-
*
|
|
312
|
-
* @param {string} errorCode - Error code
|
|
313
|
-
* @returns {Object} Classification object {level, color, icon}
|
|
314
|
-
*/
|
|
315
|
-
function getErrorClassification(errorCode) {
|
|
316
|
-
// Use shared CRITICAL_ERRORS constant from install-transaction.js
|
|
317
|
-
const additionalCriticalCodes = ['GIT_CORRUPTION'];
|
|
318
|
-
const recoverableCodes = ['NETWORK_TIMEOUT', 'NETWORK_ERROR', 'DEPENDENCY_FAILED'];
|
|
319
|
-
|
|
320
|
-
if (CRITICAL_ERRORS.includes(errorCode) || additionalCriticalCodes.includes(errorCode)) {
|
|
321
|
-
return ERROR_CLASSIFICATION.CRITICAL;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
if (recoverableCodes.includes(errorCode)) {
|
|
325
|
-
return ERROR_CLASSIFICATION.RECOVERABLE;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
return ERROR_CLASSIFICATION.WARNING;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
module.exports = {
|
|
332
|
-
ERROR_CLASSIFICATION,
|
|
333
|
-
ERROR_MESSAGES,
|
|
334
|
-
formatErrorMessage,
|
|
335
|
-
formatRollbackMessage,
|
|
336
|
-
formatSuccessMessage,
|
|
337
|
-
sanitizeErrorForUser,
|
|
338
|
-
getErrorClassification,
|
|
339
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Installation Error Messages - User-friendly error communication
|
|
3
|
+
*
|
|
4
|
+
* Provides classified error messages with recovery suggestions
|
|
5
|
+
* for AIOS installer failures.
|
|
6
|
+
*
|
|
7
|
+
* @module bin/utils/install-errors
|
|
8
|
+
* @see Story 1.9 - Error Handling & Rollback
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const chalk = require('chalk');
|
|
12
|
+
const { CRITICAL_ERRORS } = require('./install-transaction');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Error classification taxonomy
|
|
16
|
+
*/
|
|
17
|
+
const ERROR_CLASSIFICATION = {
|
|
18
|
+
CRITICAL: {
|
|
19
|
+
level: 'CRITICAL',
|
|
20
|
+
color: chalk.red.bold,
|
|
21
|
+
icon: '❌',
|
|
22
|
+
},
|
|
23
|
+
RECOVERABLE: {
|
|
24
|
+
level: 'RECOVERABLE',
|
|
25
|
+
color: chalk.yellow,
|
|
26
|
+
icon: '⚠️',
|
|
27
|
+
},
|
|
28
|
+
WARNING: {
|
|
29
|
+
level: 'WARNING',
|
|
30
|
+
color: chalk.yellow,
|
|
31
|
+
icon: '⚡',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Error message templates with recovery suggestions
|
|
37
|
+
*/
|
|
38
|
+
const ERROR_MESSAGES = {
|
|
39
|
+
// File system errors
|
|
40
|
+
EACCES: {
|
|
41
|
+
title: 'Permission Denied',
|
|
42
|
+
description: 'Installation failed due to insufficient file system permissions.',
|
|
43
|
+
recovery: [
|
|
44
|
+
'Run the installer with administrator/sudo privileges',
|
|
45
|
+
'Check file permissions for the installation directory',
|
|
46
|
+
'Ensure you have write access to the project folder',
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
ENOSPC: {
|
|
50
|
+
title: 'Disk Space Exhausted',
|
|
51
|
+
description: 'Installation failed because the disk is full.',
|
|
52
|
+
recovery: [
|
|
53
|
+
'Free up disk space (at least 500MB recommended)',
|
|
54
|
+
'Delete unnecessary files or move data to another drive',
|
|
55
|
+
'Run the installer again after freeing space',
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
EROFS: {
|
|
59
|
+
title: 'Read-Only File System',
|
|
60
|
+
description: 'Installation failed because the file system is read-only.',
|
|
61
|
+
recovery: [
|
|
62
|
+
'Ensure you are not installing to a read-only volume',
|
|
63
|
+
'Check file system mount options',
|
|
64
|
+
'Choose a different installation directory with write access',
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
ENOTDIR: {
|
|
68
|
+
title: 'Invalid Directory',
|
|
69
|
+
description: 'Installation failed because the path is not a directory.',
|
|
70
|
+
recovery: [
|
|
71
|
+
'Verify the installation path is a valid directory',
|
|
72
|
+
'Remove any files with conflicting names',
|
|
73
|
+
'Create the target directory manually before running installer',
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
// Network errors
|
|
78
|
+
NETWORK_TIMEOUT: {
|
|
79
|
+
title: 'Network Timeout',
|
|
80
|
+
description: 'Installation failed due to network connection timeout.',
|
|
81
|
+
recovery: [
|
|
82
|
+
'Check your internet connection',
|
|
83
|
+
'Try again in a few moments',
|
|
84
|
+
'Use a wired connection if possible',
|
|
85
|
+
'Check if npm registry is accessible: npm config get registry',
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
NETWORK_ERROR: {
|
|
89
|
+
title: 'Network Error',
|
|
90
|
+
description: 'Installation failed due to network connectivity issues.',
|
|
91
|
+
recovery: [
|
|
92
|
+
'Verify internet connection is active',
|
|
93
|
+
'Check firewall/proxy settings',
|
|
94
|
+
'Try using a different network',
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
// Package errors
|
|
99
|
+
DEPENDENCY_FAILED: {
|
|
100
|
+
title: 'Dependency Installation Failed',
|
|
101
|
+
description: 'One or more npm dependencies failed to install.',
|
|
102
|
+
recovery: [
|
|
103
|
+
'Clear npm cache: npm cache clean --force',
|
|
104
|
+
'Delete node_modules and package-lock.json',
|
|
105
|
+
'Run: npm install manually',
|
|
106
|
+
'Check npm version compatibility: npm --version',
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
PACKAGE_CORRUPTION: {
|
|
110
|
+
title: 'Package Corruption',
|
|
111
|
+
description: 'Installation failed due to corrupted package files.',
|
|
112
|
+
recovery: [
|
|
113
|
+
'Clear npm cache: npm cache clean --force',
|
|
114
|
+
'Verify package integrity with npm audit',
|
|
115
|
+
'Try installing with --force flag',
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
// Configuration errors
|
|
120
|
+
CONFIG_PARSE_ERROR: {
|
|
121
|
+
title: 'Configuration Parse Error',
|
|
122
|
+
description: 'Installation failed due to invalid configuration file syntax.',
|
|
123
|
+
recovery: [
|
|
124
|
+
'Check YAML/JSON syntax in configuration files',
|
|
125
|
+
'Validate config files with a linter',
|
|
126
|
+
'Restore default configuration and retry',
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
CONFIG_WRITE_ERROR: {
|
|
130
|
+
title: 'Configuration Write Failed',
|
|
131
|
+
description: 'Installation failed while writing configuration files.',
|
|
132
|
+
recovery: [
|
|
133
|
+
'Check write permissions for config directories',
|
|
134
|
+
'Ensure config directory exists',
|
|
135
|
+
'Check disk space availability',
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
// Git errors
|
|
140
|
+
GIT_CORRUPTION: {
|
|
141
|
+
title: 'Git Repository Corruption',
|
|
142
|
+
description: 'Installation detected git repository corruption.',
|
|
143
|
+
recovery: [
|
|
144
|
+
'Run: git fsck to check repository integrity',
|
|
145
|
+
'Restore from backup if available',
|
|
146
|
+
'Re-initialize git repository: git init (warning: loses history)',
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
GIT_CONFLICT: {
|
|
150
|
+
title: 'Git Conflict Detected',
|
|
151
|
+
description: 'Installation failed due to uncommitted changes or conflicts.',
|
|
152
|
+
recovery: [
|
|
153
|
+
'Commit or stash your changes: git stash',
|
|
154
|
+
'Resolve any merge conflicts',
|
|
155
|
+
'Run installer in a clean git state',
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
// Generic errors
|
|
160
|
+
UNKNOWN_ERROR: {
|
|
161
|
+
title: 'Unknown Installation Error',
|
|
162
|
+
description: 'Installation failed due to an unexpected error.',
|
|
163
|
+
recovery: [
|
|
164
|
+
'Check the installation log: .aios-install.log',
|
|
165
|
+
'Review error details in the log file',
|
|
166
|
+
'Report the issue if problem persists',
|
|
167
|
+
'Try running installer again',
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Format error message with classification, description, and recovery steps
|
|
174
|
+
*
|
|
175
|
+
* @param {Error} error - Error object
|
|
176
|
+
* @param {string} [errorCode] - Error code (e.g., 'EACCES', 'NETWORK_TIMEOUT')
|
|
177
|
+
* @returns {string} Formatted error message
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* const message = formatErrorMessage(error, 'EACCES');
|
|
181
|
+
* console.error(message);
|
|
182
|
+
*/
|
|
183
|
+
function formatErrorMessage(error, errorCode = null) {
|
|
184
|
+
const code = errorCode || error.code || 'UNKNOWN_ERROR';
|
|
185
|
+
const template = ERROR_MESSAGES[code] || ERROR_MESSAGES.UNKNOWN_ERROR;
|
|
186
|
+
// Derive classification from error code instead of hardcoding CRITICAL
|
|
187
|
+
const classification = getErrorClassification(code);
|
|
188
|
+
|
|
189
|
+
const lines = [];
|
|
190
|
+
lines.push('');
|
|
191
|
+
lines.push(classification.color('═══════════════════════════════════════════════════════'));
|
|
192
|
+
lines.push(classification.color(`${classification.icon} ${template.title}`));
|
|
193
|
+
lines.push(classification.color('═══════════════════════════════════════════════════════'));
|
|
194
|
+
lines.push('');
|
|
195
|
+
lines.push(chalk.white(template.description));
|
|
196
|
+
lines.push('');
|
|
197
|
+
|
|
198
|
+
if (template.recovery && template.recovery.length > 0) {
|
|
199
|
+
lines.push(chalk.cyan.bold('Recovery Steps:'));
|
|
200
|
+
template.recovery.forEach((step, index) => {
|
|
201
|
+
lines.push(chalk.cyan(` ${index + 1}. ${step}`));
|
|
202
|
+
});
|
|
203
|
+
lines.push('');
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
lines.push(chalk.gray('Error Details:'));
|
|
207
|
+
lines.push(chalk.gray(` Code: ${code}`));
|
|
208
|
+
if (error.message && !error.message.includes(template.title)) {
|
|
209
|
+
// Only show technical message if it adds new info
|
|
210
|
+
lines.push(chalk.gray(` Message: ${error.message}`));
|
|
211
|
+
}
|
|
212
|
+
lines.push('');
|
|
213
|
+
lines.push(chalk.gray('Installation log: .aios-install.log'));
|
|
214
|
+
lines.push('');
|
|
215
|
+
|
|
216
|
+
return lines.join('\n');
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Format rollback message
|
|
221
|
+
*
|
|
222
|
+
* @param {boolean} success - Whether rollback succeeded
|
|
223
|
+
* @param {string[]} [failedFiles] - List of files that failed to restore
|
|
224
|
+
* @returns {string} Formatted rollback message
|
|
225
|
+
*/
|
|
226
|
+
function formatRollbackMessage(success, failedFiles = []) {
|
|
227
|
+
const lines = [];
|
|
228
|
+
lines.push('');
|
|
229
|
+
|
|
230
|
+
if (success) {
|
|
231
|
+
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
232
|
+
lines.push(chalk.green('✅ Rollback Completed Successfully'));
|
|
233
|
+
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
234
|
+
lines.push('');
|
|
235
|
+
lines.push(chalk.white('Your system has been restored to its previous state.'));
|
|
236
|
+
lines.push(chalk.white('No files were modified.'));
|
|
237
|
+
} else {
|
|
238
|
+
lines.push(chalk.red('═══════════════════════════════════════════════════════'));
|
|
239
|
+
lines.push(chalk.red('⚠️ Rollback Completed with Errors'));
|
|
240
|
+
lines.push(chalk.red('═══════════════════════════════════════════════════════'));
|
|
241
|
+
lines.push('');
|
|
242
|
+
lines.push(chalk.yellow('Some files could not be restored automatically.'));
|
|
243
|
+
lines.push('');
|
|
244
|
+
lines.push(chalk.yellow.bold('Manual Recovery Required:'));
|
|
245
|
+
|
|
246
|
+
if (failedFiles.length > 0) {
|
|
247
|
+
failedFiles.forEach((file) => {
|
|
248
|
+
lines.push(chalk.yellow(` - ${file}`));
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
lines.push('');
|
|
253
|
+
lines.push(chalk.cyan('Recovery Steps:'));
|
|
254
|
+
lines.push(chalk.cyan(' 1. Check backup directory: .aios-backup/'));
|
|
255
|
+
lines.push(chalk.cyan(' 2. Manually restore failed files from backups'));
|
|
256
|
+
lines.push(chalk.cyan(' 3. Review installation log: .aios-install.log'));
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
lines.push('');
|
|
260
|
+
return lines.join('\n');
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Format success message (installation complete)
|
|
265
|
+
*
|
|
266
|
+
* @returns {string} Formatted success message
|
|
267
|
+
*/
|
|
268
|
+
function formatSuccessMessage() {
|
|
269
|
+
const lines = [];
|
|
270
|
+
lines.push('');
|
|
271
|
+
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
272
|
+
lines.push(chalk.green('✅ Installation Completed Successfully'));
|
|
273
|
+
lines.push(chalk.green('═══════════════════════════════════════════════════════'));
|
|
274
|
+
lines.push('');
|
|
275
|
+
lines.push(chalk.white('AIOS has been installed and configured.'));
|
|
276
|
+
lines.push('');
|
|
277
|
+
lines.push(chalk.cyan.bold('Next Steps:'));
|
|
278
|
+
lines.push(chalk.cyan(' 1. Review installation log: .aios-install.log'));
|
|
279
|
+
lines.push(chalk.cyan(' 2. Verify configuration: aios config --check'));
|
|
280
|
+
lines.push(chalk.cyan(' 3. Run validation: aios validate'));
|
|
281
|
+
lines.push('');
|
|
282
|
+
return lines.join('\n');
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Sanitize error for user display
|
|
287
|
+
* Removes stack traces and technical details
|
|
288
|
+
*
|
|
289
|
+
* @param {Error} error - Error object
|
|
290
|
+
* @returns {string} User-friendly error message (single line)
|
|
291
|
+
*/
|
|
292
|
+
function sanitizeErrorForUser(error) {
|
|
293
|
+
if (!error) {
|
|
294
|
+
return 'An unknown error occurred';
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// Extract just the message, no stack trace
|
|
298
|
+
const message = error.message || error.toString();
|
|
299
|
+
|
|
300
|
+
// Remove file paths from error messages
|
|
301
|
+
const sanitized = message.replace(/(?:at\s+)?(?:[A-Z]:\\|\/)[^\s:]+:\d+:\d+/g, '[file]');
|
|
302
|
+
|
|
303
|
+
// Remove stack trace lines
|
|
304
|
+
const firstLine = sanitized.split('\n')[0];
|
|
305
|
+
|
|
306
|
+
return firstLine;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Get error classification for an error
|
|
311
|
+
*
|
|
312
|
+
* @param {string} errorCode - Error code
|
|
313
|
+
* @returns {Object} Classification object {level, color, icon}
|
|
314
|
+
*/
|
|
315
|
+
function getErrorClassification(errorCode) {
|
|
316
|
+
// Use shared CRITICAL_ERRORS constant from install-transaction.js
|
|
317
|
+
const additionalCriticalCodes = ['GIT_CORRUPTION'];
|
|
318
|
+
const recoverableCodes = ['NETWORK_TIMEOUT', 'NETWORK_ERROR', 'DEPENDENCY_FAILED'];
|
|
319
|
+
|
|
320
|
+
if (CRITICAL_ERRORS.includes(errorCode) || additionalCriticalCodes.includes(errorCode)) {
|
|
321
|
+
return ERROR_CLASSIFICATION.CRITICAL;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
if (recoverableCodes.includes(errorCode)) {
|
|
325
|
+
return ERROR_CLASSIFICATION.RECOVERABLE;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
return ERROR_CLASSIFICATION.WARNING;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
module.exports = {
|
|
332
|
+
ERROR_CLASSIFICATION,
|
|
333
|
+
ERROR_MESSAGES,
|
|
334
|
+
formatErrorMessage,
|
|
335
|
+
formatRollbackMessage,
|
|
336
|
+
formatSuccessMessage,
|
|
337
|
+
sanitizeErrorForUser,
|
|
338
|
+
getErrorClassification,
|
|
339
|
+
};
|