aios-core 2.1.6 → 2.2.1
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 +704 -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 -11
- 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/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
- 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,780 +0,0 @@
|
|
|
1
|
-
const fs = require('fs').promises;
|
|
2
|
-
const path = require('path');
|
|
3
|
-
const chalk = require('chalk');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Migration script generator for AIOS-FULLSTACK framework
|
|
7
|
-
* Generates migration scripts between framework versions
|
|
8
|
-
*/
|
|
9
|
-
class MigrationGenerator {
|
|
10
|
-
constructor(options = {}) {
|
|
11
|
-
this.rootPath = options.rootPath || process.cwd();
|
|
12
|
-
this.migrationTemplates = this.initializeMigrationTemplates();
|
|
13
|
-
this.versionTracker = options.versionTracker;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Generate migration script between two versions
|
|
18
|
-
*/
|
|
19
|
-
async generateMigrationScript(fromVersion, toVersion, options = {}) {
|
|
20
|
-
const migrationScript = {
|
|
21
|
-
migration_id: `${fromVersion}-to-${toVersion}`,
|
|
22
|
-
from_version: fromVersion,
|
|
23
|
-
to_version: toVersion,
|
|
24
|
-
timestamp: new Date().toISOString(),
|
|
25
|
-
operations: [],
|
|
26
|
-
rollback_operations: [],
|
|
27
|
-
estimated_duration: 0,
|
|
28
|
-
risk_level: 'low',
|
|
29
|
-
prerequisites: [],
|
|
30
|
-
validation_checks: [],
|
|
31
|
-
post_migration_tasks: [],
|
|
32
|
-
metadata: {
|
|
33
|
-
auto_generated: true,
|
|
34
|
-
generator_version: '1.0.0',
|
|
35
|
-
migration_type: options.migrationType || 'auto',
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
try {
|
|
40
|
-
console.log(chalk.blue(`🔧 Generating migration script: ${fromVersion} → ${toVersion}`));
|
|
41
|
-
|
|
42
|
-
// Get version information
|
|
43
|
-
const fromVersionInfo = await this.getVersionInfo(fromVersion);
|
|
44
|
-
const toVersionInfo = await this.getVersionInfo(toVersion);
|
|
45
|
-
|
|
46
|
-
// Analyze changes between versions
|
|
47
|
-
const changes = await this.analyzeVersionChanges(fromVersionInfo, toVersionInfo);
|
|
48
|
-
|
|
49
|
-
// Generate migration operations
|
|
50
|
-
migrationScript.operations = await this.generateMigrationOperations(changes);
|
|
51
|
-
migrationScript.rollback_operations = await this.generateRollbackOperations(changes);
|
|
52
|
-
|
|
53
|
-
// Generate validation checks
|
|
54
|
-
migrationScript.validation_checks = this.generateValidationChecks(changes);
|
|
55
|
-
|
|
56
|
-
// Generate prerequisites
|
|
57
|
-
migrationScript.prerequisites = this.generatePrerequisites(changes);
|
|
58
|
-
|
|
59
|
-
// Generate post-migration tasks
|
|
60
|
-
migrationScript.post_migration_tasks = this.generatePostMigrationTasks(changes);
|
|
61
|
-
|
|
62
|
-
// Calculate metadata
|
|
63
|
-
migrationScript.estimated_duration = this.calculateMigrationDuration(migrationScript.operations);
|
|
64
|
-
migrationScript.risk_level = this.assessMigrationRisk(changes, migrationScript.operations);
|
|
65
|
-
|
|
66
|
-
// Save migration script
|
|
67
|
-
const scriptPath = await this.saveMigrationScript(migrationScript);
|
|
68
|
-
|
|
69
|
-
console.log(chalk.green(`✅ Migration script generated: ${scriptPath}`));
|
|
70
|
-
console.log(chalk.gray(` Operations: ${migrationScript.operations.length}`));
|
|
71
|
-
console.log(chalk.gray(` Estimated duration: ${migrationScript.estimated_duration} minutes`));
|
|
72
|
-
console.log(chalk.gray(` Risk level: ${migrationScript.risk_level}`));
|
|
73
|
-
|
|
74
|
-
return {
|
|
75
|
-
migration_id: migrationScript.migration_id,
|
|
76
|
-
script_path: scriptPath,
|
|
77
|
-
operations: migrationScript.operations.length,
|
|
78
|
-
estimated_duration: migrationScript.estimated_duration,
|
|
79
|
-
risk_level: migrationScript.risk_level,
|
|
80
|
-
prerequisites: migrationScript.prerequisites.length,
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
} catch (error) {
|
|
84
|
-
console.error(chalk.red(`Migration script generation failed: ${error.message}`));
|
|
85
|
-
throw error;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Generate migration operations based on changes
|
|
91
|
-
*/
|
|
92
|
-
async generateMigrationOperations(changes) {
|
|
93
|
-
const operations = [];
|
|
94
|
-
|
|
95
|
-
// File operations
|
|
96
|
-
if (changes.files) {
|
|
97
|
-
// New files
|
|
98
|
-
for (const newFile of changes.files.added || []) {
|
|
99
|
-
operations.push({
|
|
100
|
-
type: 'create_file',
|
|
101
|
-
description: `Create new file: ${newFile.path}`,
|
|
102
|
-
target: newFile.path,
|
|
103
|
-
content: newFile.content || null,
|
|
104
|
-
template: newFile.template || null,
|
|
105
|
-
order: 10,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Modified files
|
|
110
|
-
for (const modifiedFile of changes.files.modified || []) {
|
|
111
|
-
if (modifiedFile.migration_type === 'automatic') {
|
|
112
|
-
operations.push({
|
|
113
|
-
type: 'update_file',
|
|
114
|
-
description: `Update file: ${modifiedFile.path}`,
|
|
115
|
-
target: modifiedFile.path,
|
|
116
|
-
changes: modifiedFile.changes,
|
|
117
|
-
backup_original: true,
|
|
118
|
-
order: 20,
|
|
119
|
-
});
|
|
120
|
-
} else {
|
|
121
|
-
operations.push({
|
|
122
|
-
type: 'manual_review',
|
|
123
|
-
description: `Manual review required for: ${modifiedFile.path}`,
|
|
124
|
-
target: modifiedFile.path,
|
|
125
|
-
reason: 'Complex changes require manual intervention',
|
|
126
|
-
guidance: modifiedFile.migration_guidance,
|
|
127
|
-
order: 15,
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Deleted files
|
|
133
|
-
for (const deletedFile of changes.files.removed || []) {
|
|
134
|
-
operations.push({
|
|
135
|
-
type: 'archive_file',
|
|
136
|
-
description: `Archive deprecated file: ${deletedFile.path}`,
|
|
137
|
-
target: deletedFile.path,
|
|
138
|
-
archive_location: `.aios/deprecated/${deletedFile.path}`,
|
|
139
|
-
order: 30,
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Moved/renamed files
|
|
144
|
-
for (const movedFile of changes.files.moved || []) {
|
|
145
|
-
operations.push({
|
|
146
|
-
type: 'move_file',
|
|
147
|
-
description: `Move file: ${movedFile.from} → ${movedFile.to}`,
|
|
148
|
-
source: movedFile.from,
|
|
149
|
-
target: movedFile.to,
|
|
150
|
-
update_references: true,
|
|
151
|
-
order: 25,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// Configuration changes
|
|
157
|
-
if (changes.configuration) {
|
|
158
|
-
for (const configChange of changes.configuration) {
|
|
159
|
-
operations.push({
|
|
160
|
-
type: 'update_configuration',
|
|
161
|
-
description: `Update configuration: ${configChange.file}`,
|
|
162
|
-
target: configChange.file,
|
|
163
|
-
changes: configChange.changes,
|
|
164
|
-
merge_strategy: configChange.merge_strategy || 'smart_merge',
|
|
165
|
-
order: 5,
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Dependency changes
|
|
171
|
-
if (changes.dependencies) {
|
|
172
|
-
// New dependencies
|
|
173
|
-
for (const newDep of changes.dependencies.added || []) {
|
|
174
|
-
operations.push({
|
|
175
|
-
type: 'install_dependency',
|
|
176
|
-
description: `Install new dependency: ${newDep.name}@${newDep.version}`,
|
|
177
|
-
package: newDep.name,
|
|
178
|
-
version: newDep.version,
|
|
179
|
-
dev: newDep.dev || false,
|
|
180
|
-
order: 1,
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Updated dependencies
|
|
185
|
-
for (const updatedDep of changes.dependencies.updated || []) {
|
|
186
|
-
operations.push({
|
|
187
|
-
type: 'update_dependency',
|
|
188
|
-
description: `Update dependency: ${updatedDep.name} ${updatedDep.from} → ${updatedDep.to}`,
|
|
189
|
-
package: updatedDep.name,
|
|
190
|
-
from_version: updatedDep.from,
|
|
191
|
-
to_version: updatedDep.to,
|
|
192
|
-
breaking_changes: updatedDep.breaking_changes || [],
|
|
193
|
-
order: 2,
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// Removed dependencies
|
|
198
|
-
for (const removedDep of changes.dependencies.removed || []) {
|
|
199
|
-
operations.push({
|
|
200
|
-
type: 'remove_dependency',
|
|
201
|
-
description: `Remove deprecated dependency: ${removedDep.name}`,
|
|
202
|
-
package: removedDep.name,
|
|
203
|
-
replacement: removedDep.replacement,
|
|
204
|
-
order: 35,
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// Breaking changes
|
|
210
|
-
if (changes.breaking_changes) {
|
|
211
|
-
for (const breakingChange of changes.breaking_changes) {
|
|
212
|
-
operations.push({
|
|
213
|
-
type: 'breaking_change',
|
|
214
|
-
description: `Handle breaking change: ${breakingChange.description}`,
|
|
215
|
-
category: breakingChange.category,
|
|
216
|
-
migration_steps: breakingChange.migration_steps,
|
|
217
|
-
affected_components: breakingChange.affected_components,
|
|
218
|
-
order: 40,
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// Database/storage migrations
|
|
224
|
-
if (changes.storage) {
|
|
225
|
-
for (const storageChange of changes.storage) {
|
|
226
|
-
operations.push({
|
|
227
|
-
type: 'migrate_storage',
|
|
228
|
-
description: `Migrate storage: ${storageChange.description}`,
|
|
229
|
-
migration_type: storageChange.type,
|
|
230
|
-
data_transformations: storageChange.transformations,
|
|
231
|
-
order: 45,
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// Sort operations by order
|
|
237
|
-
return operations.sort((a, b) => a.order - b.order);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Generate rollback operations
|
|
242
|
-
*/
|
|
243
|
-
async generateRollbackOperations(changes) {
|
|
244
|
-
const rollbackOps = [];
|
|
245
|
-
|
|
246
|
-
// Reverse file operations
|
|
247
|
-
if (changes.files) {
|
|
248
|
-
// Rollback created files
|
|
249
|
-
for (const newFile of changes.files.added || []) {
|
|
250
|
-
rollbackOps.push({
|
|
251
|
-
type: 'delete_file',
|
|
252
|
-
description: `Remove file created during migration: ${newFile.path}`,
|
|
253
|
-
target: newFile.path,
|
|
254
|
-
order: 10,
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// Rollback modified files
|
|
259
|
-
for (const modifiedFile of changes.files.modified || []) {
|
|
260
|
-
rollbackOps.push({
|
|
261
|
-
type: 'restore_backup',
|
|
262
|
-
description: `Restore original file: ${modifiedFile.path}`,
|
|
263
|
-
target: modifiedFile.path,
|
|
264
|
-
backup_source: `${modifiedFile.path}.migration-backup`,
|
|
265
|
-
order: 20,
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// Rollback archived files
|
|
270
|
-
for (const deletedFile of changes.files.removed || []) {
|
|
271
|
-
rollbackOps.push({
|
|
272
|
-
type: 'restore_file',
|
|
273
|
-
description: `Restore archived file: ${deletedFile.path}`,
|
|
274
|
-
source: `.aios/deprecated/${deletedFile.path}`,
|
|
275
|
-
target: deletedFile.path,
|
|
276
|
-
order: 30,
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// Rollback moved files
|
|
281
|
-
for (const movedFile of changes.files.moved || []) {
|
|
282
|
-
rollbackOps.push({
|
|
283
|
-
type: 'move_file',
|
|
284
|
-
description: `Restore file location: ${movedFile.to} → ${movedFile.from}`,
|
|
285
|
-
source: movedFile.to,
|
|
286
|
-
target: movedFile.from,
|
|
287
|
-
update_references: true,
|
|
288
|
-
order: 25,
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// Rollback dependency changes
|
|
294
|
-
if (changes.dependencies) {
|
|
295
|
-
for (const newDep of changes.dependencies.added || []) {
|
|
296
|
-
rollbackOps.push({
|
|
297
|
-
type: 'uninstall_dependency',
|
|
298
|
-
description: `Remove dependency added during migration: ${newDep.name}`,
|
|
299
|
-
package: newDep.name,
|
|
300
|
-
order: 35,
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
for (const updatedDep of changes.dependencies.updated || []) {
|
|
305
|
-
rollbackOps.push({
|
|
306
|
-
type: 'downgrade_dependency',
|
|
307
|
-
description: `Rollback dependency: ${updatedDep.name} ${updatedDep.to} → ${updatedDep.from}`,
|
|
308
|
-
package: updatedDep.name,
|
|
309
|
-
from_version: updatedDep.to,
|
|
310
|
-
to_version: updatedDep.from,
|
|
311
|
-
order: 36,
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
for (const removedDep of changes.dependencies.removed || []) {
|
|
316
|
-
rollbackOps.push({
|
|
317
|
-
type: 'reinstall_dependency',
|
|
318
|
-
description: `Reinstall removed dependency: ${removedDep.name}`,
|
|
319
|
-
package: removedDep.name,
|
|
320
|
-
version: removedDep.version,
|
|
321
|
-
order: 37,
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
// Sort rollback operations in reverse order
|
|
327
|
-
return rollbackOps.sort((a, b) => b.order - a.order);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Generate validation checks for migration
|
|
332
|
-
*/
|
|
333
|
-
generateValidationChecks(changes) {
|
|
334
|
-
const checks = [];
|
|
335
|
-
|
|
336
|
-
// Basic system checks
|
|
337
|
-
checks.push({
|
|
338
|
-
type: 'system_requirements',
|
|
339
|
-
description: 'Verify system meets minimum requirements',
|
|
340
|
-
checks: [
|
|
341
|
-
'node_version_compatibility',
|
|
342
|
-
'disk_space_available',
|
|
343
|
-
'memory_requirements',
|
|
344
|
-
'permission_checks',
|
|
345
|
-
],
|
|
346
|
-
});
|
|
347
|
-
|
|
348
|
-
// File integrity checks
|
|
349
|
-
if (changes.files) {
|
|
350
|
-
checks.push({
|
|
351
|
-
type: 'file_integrity',
|
|
352
|
-
description: 'Verify file integrity before migration',
|
|
353
|
-
files: [
|
|
354
|
-
...(changes.files.modified || []).map(f => f.path),
|
|
355
|
-
...(changes.files.moved || []).map(f => f.from),
|
|
356
|
-
],
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
// Dependency compatibility
|
|
361
|
-
if (changes.dependencies) {
|
|
362
|
-
checks.push({
|
|
363
|
-
type: 'dependency_compatibility',
|
|
364
|
-
description: 'Check dependency compatibility',
|
|
365
|
-
dependencies: changes.dependencies.updated || [],
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
// Backup verification
|
|
370
|
-
checks.push({
|
|
371
|
-
type: 'backup_verification',
|
|
372
|
-
description: 'Ensure backup is created and valid',
|
|
373
|
-
backup_targets: this.getBackupTargets(changes),
|
|
374
|
-
});
|
|
375
|
-
|
|
376
|
-
// Custom validation based on breaking changes
|
|
377
|
-
if (changes.breaking_changes) {
|
|
378
|
-
for (const breakingChange of changes.breaking_changes) {
|
|
379
|
-
if (breakingChange.validation) {
|
|
380
|
-
checks.push({
|
|
381
|
-
type: 'custom_validation',
|
|
382
|
-
description: `Validate ${breakingChange.description}`,
|
|
383
|
-
validation_script: breakingChange.validation,
|
|
384
|
-
critical: true,
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
return checks;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* Generate prerequisites for migration
|
|
395
|
-
*/
|
|
396
|
-
generatePrerequisites(changes) {
|
|
397
|
-
const prerequisites = [];
|
|
398
|
-
|
|
399
|
-
// Version requirements
|
|
400
|
-
prerequisites.push({
|
|
401
|
-
type: 'version_check',
|
|
402
|
-
description: 'Verify current framework version',
|
|
403
|
-
required_version: changes.from_version,
|
|
404
|
-
validation: 'exact_match',
|
|
405
|
-
});
|
|
406
|
-
|
|
407
|
-
// Backup requirement
|
|
408
|
-
prerequisites.push({
|
|
409
|
-
type: 'backup_creation',
|
|
410
|
-
description: 'Create full system backup before migration',
|
|
411
|
-
backup_scope: 'full',
|
|
412
|
-
verification_required: true,
|
|
413
|
-
});
|
|
414
|
-
|
|
415
|
-
// Clean working directory
|
|
416
|
-
prerequisites.push({
|
|
417
|
-
type: 'clean_workspace',
|
|
418
|
-
description: 'Ensure working directory is clean',
|
|
419
|
-
requirements: [
|
|
420
|
-
'no_uncommitted_changes',
|
|
421
|
-
'no_untracked_files',
|
|
422
|
-
'up_to_date_with_remote',
|
|
423
|
-
],
|
|
424
|
-
});
|
|
425
|
-
|
|
426
|
-
// Dependency installations
|
|
427
|
-
if (changes.dependencies?.added?.length > 0) {
|
|
428
|
-
prerequisites.push({
|
|
429
|
-
type: 'dependency_preparation',
|
|
430
|
-
description: 'Prepare for dependency installations',
|
|
431
|
-
requirements: [
|
|
432
|
-
'npm_registry_accessible',
|
|
433
|
-
'sufficient_disk_space',
|
|
434
|
-
'write_permissions',
|
|
435
|
-
],
|
|
436
|
-
});
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
// Component-specific prerequisites
|
|
440
|
-
if (changes.breaking_changes) {
|
|
441
|
-
for (const breakingChange of changes.breaking_changes) {
|
|
442
|
-
if (breakingChange.prerequisites) {
|
|
443
|
-
prerequisites.push({
|
|
444
|
-
type: 'component_prerequisite',
|
|
445
|
-
description: `Prerequisites for ${breakingChange.description}`,
|
|
446
|
-
requirements: breakingChange.prerequisites,
|
|
447
|
-
});
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
return prerequisites;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
/**
|
|
456
|
-
* Generate post-migration tasks
|
|
457
|
-
*/
|
|
458
|
-
generatePostMigrationTasks(changes) {
|
|
459
|
-
const tasks = [];
|
|
460
|
-
|
|
461
|
-
// System validation
|
|
462
|
-
tasks.push({
|
|
463
|
-
type: 'system_validation',
|
|
464
|
-
description: 'Validate system functionality after migration',
|
|
465
|
-
tests: [
|
|
466
|
-
'framework_initialization',
|
|
467
|
-
'component_loading',
|
|
468
|
-
'basic_operations',
|
|
469
|
-
'configuration_validity',
|
|
470
|
-
],
|
|
471
|
-
});
|
|
472
|
-
|
|
473
|
-
// Performance verification
|
|
474
|
-
tasks.push({
|
|
475
|
-
type: 'performance_check',
|
|
476
|
-
description: 'Verify performance after migration',
|
|
477
|
-
benchmarks: [
|
|
478
|
-
'startup_time',
|
|
479
|
-
'memory_usage',
|
|
480
|
-
'operation_latency',
|
|
481
|
-
],
|
|
482
|
-
});
|
|
483
|
-
|
|
484
|
-
// Update documentation
|
|
485
|
-
if (changes.documentation_updates) {
|
|
486
|
-
tasks.push({
|
|
487
|
-
type: 'documentation_update',
|
|
488
|
-
description: 'Update project documentation',
|
|
489
|
-
files: changes.documentation_updates,
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
// Clean up temporary files
|
|
494
|
-
tasks.push({
|
|
495
|
-
type: 'cleanup',
|
|
496
|
-
description: 'Clean up migration temporary files',
|
|
497
|
-
targets: [
|
|
498
|
-
'.aios/migration-temp',
|
|
499
|
-
'*.migration-backup',
|
|
500
|
-
'.aios/migration-logs',
|
|
501
|
-
],
|
|
502
|
-
});
|
|
503
|
-
|
|
504
|
-
// Version recording
|
|
505
|
-
tasks.push({
|
|
506
|
-
type: 'version_recording',
|
|
507
|
-
description: 'Record successful migration',
|
|
508
|
-
update_version_info: true,
|
|
509
|
-
migration_log: true,
|
|
510
|
-
});
|
|
511
|
-
|
|
512
|
-
return tasks;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
/**
|
|
516
|
-
* Analyze changes between versions
|
|
517
|
-
*/
|
|
518
|
-
async analyzeVersionChanges(fromVersionInfo, toVersionInfo) {
|
|
519
|
-
const changes = {
|
|
520
|
-
from_version: fromVersionInfo.version,
|
|
521
|
-
to_version: toVersionInfo.version,
|
|
522
|
-
files: {
|
|
523
|
-
added: [],
|
|
524
|
-
modified: [],
|
|
525
|
-
removed: [],
|
|
526
|
-
moved: [],
|
|
527
|
-
},
|
|
528
|
-
dependencies: {
|
|
529
|
-
added: [],
|
|
530
|
-
updated: [],
|
|
531
|
-
removed: [],
|
|
532
|
-
},
|
|
533
|
-
configuration: [],
|
|
534
|
-
breaking_changes: toVersionInfo.breaking_changes || [],
|
|
535
|
-
api_changes: toVersionInfo.api_changes || [],
|
|
536
|
-
storage: [],
|
|
537
|
-
};
|
|
538
|
-
|
|
539
|
-
// Compare component modifications
|
|
540
|
-
const fromComponents = fromVersionInfo.components_modified || [];
|
|
541
|
-
const toComponents = toVersionInfo.components_modified || [];
|
|
542
|
-
|
|
543
|
-
// Find added components
|
|
544
|
-
for (const component of toComponents) {
|
|
545
|
-
if (!fromComponents.find(c => c.id === component.id)) {
|
|
546
|
-
changes.files.added.push({
|
|
547
|
-
path: component.file_path,
|
|
548
|
-
type: 'component',
|
|
549
|
-
component_type: component.type,
|
|
550
|
-
template: component.template,
|
|
551
|
-
});
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
// Find modified components
|
|
556
|
-
for (const toComponent of toComponents) {
|
|
557
|
-
const fromComponent = fromComponents.find(c => c.id === toComponent.id);
|
|
558
|
-
if (fromComponent && fromComponent.checksum !== toComponent.checksum) {
|
|
559
|
-
changes.files.modified.push({
|
|
560
|
-
path: toComponent.file_path,
|
|
561
|
-
type: 'component',
|
|
562
|
-
migration_type: this.determineMigrationType(fromComponent, toComponent),
|
|
563
|
-
changes: toComponent.changes || [],
|
|
564
|
-
migration_guidance: this.generateMigrationGuidance(fromComponent, toComponent),
|
|
565
|
-
});
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
// Find removed components
|
|
570
|
-
for (const component of fromComponents) {
|
|
571
|
-
if (!toComponents.find(c => c.id === component.id)) {
|
|
572
|
-
changes.files.removed.push({
|
|
573
|
-
path: component.file_path,
|
|
574
|
-
type: 'component',
|
|
575
|
-
reason: 'deprecated',
|
|
576
|
-
});
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
return changes;
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
/**
|
|
584
|
-
* Calculate migration duration
|
|
585
|
-
*/
|
|
586
|
-
calculateMigrationDuration(operations) {
|
|
587
|
-
let totalMinutes = 0;
|
|
588
|
-
|
|
589
|
-
const operationTimes = {
|
|
590
|
-
create_file: 1,
|
|
591
|
-
update_file: 2,
|
|
592
|
-
move_file: 2,
|
|
593
|
-
archive_file: 1,
|
|
594
|
-
install_dependency: 3,
|
|
595
|
-
update_dependency: 4,
|
|
596
|
-
remove_dependency: 2,
|
|
597
|
-
update_configuration: 2,
|
|
598
|
-
breaking_change: 10,
|
|
599
|
-
migrate_storage: 15,
|
|
600
|
-
manual_review: 30,
|
|
601
|
-
};
|
|
602
|
-
|
|
603
|
-
for (const operation of operations) {
|
|
604
|
-
totalMinutes += operationTimes[operation.type] || 5;
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
// Add base overhead
|
|
608
|
-
totalMinutes += 10;
|
|
609
|
-
|
|
610
|
-
return Math.ceil(totalMinutes);
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
/**
|
|
614
|
-
* Assess migration risk level
|
|
615
|
-
*/
|
|
616
|
-
assessMigrationRisk(changes, operations) {
|
|
617
|
-
let riskScore = 0;
|
|
618
|
-
|
|
619
|
-
// Breaking changes increase risk
|
|
620
|
-
riskScore += (changes.breaking_changes?.length || 0) * 3;
|
|
621
|
-
|
|
622
|
-
// File modifications
|
|
623
|
-
riskScore += (changes.files?.modified?.length || 0) * 1;
|
|
624
|
-
|
|
625
|
-
// Dependency updates
|
|
626
|
-
riskScore += (changes.dependencies?.updated?.length || 0) * 2;
|
|
627
|
-
|
|
628
|
-
// Manual operations
|
|
629
|
-
const manualOps = operations.filter(op => op.type === 'manual_review').length;
|
|
630
|
-
riskScore += manualOps * 5;
|
|
631
|
-
|
|
632
|
-
// Storage migrations
|
|
633
|
-
const storageOps = operations.filter(op => op.type === 'migrate_storage').length;
|
|
634
|
-
riskScore += storageOps * 10;
|
|
635
|
-
|
|
636
|
-
if (riskScore >= 20) return 'high';
|
|
637
|
-
if (riskScore >= 10) return 'medium';
|
|
638
|
-
return 'low';
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
/**
|
|
642
|
-
* Save migration script to file
|
|
643
|
-
*/
|
|
644
|
-
async saveMigrationScript(migrationScript) {
|
|
645
|
-
const migrationsDir = path.join(this.rootPath, '.aios', 'migrations');
|
|
646
|
-
await fs.mkdir(migrationsDir, { recursive: true });
|
|
647
|
-
|
|
648
|
-
const scriptFilename = `${migrationScript.from_version}-to-${migrationScript.to_version}.json`;
|
|
649
|
-
const scriptPath = path.join(migrationsDir, scriptFilename);
|
|
650
|
-
|
|
651
|
-
const scriptContent = JSON.stringify(migrationScript, null, 2);
|
|
652
|
-
await fs.writeFile(scriptPath, scriptContent);
|
|
653
|
-
|
|
654
|
-
return scriptPath;
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
/**
|
|
658
|
-
* Get version information
|
|
659
|
-
*/
|
|
660
|
-
async getVersionInfo(version) {
|
|
661
|
-
if (this.versionTracker) {
|
|
662
|
-
const versionInfo = await this.versionTracker.getVersionHistory({ limit: 100 });
|
|
663
|
-
const foundVersion = versionInfo.versions.find(v => v.version === version);
|
|
664
|
-
|
|
665
|
-
if (foundVersion) {
|
|
666
|
-
return foundVersion;
|
|
667
|
-
}
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
// Return basic version info if not found
|
|
671
|
-
return {
|
|
672
|
-
version,
|
|
673
|
-
components_modified: [],
|
|
674
|
-
breaking_changes: [],
|
|
675
|
-
api_changes: [],
|
|
676
|
-
};
|
|
677
|
-
}
|
|
678
|
-
|
|
679
|
-
/**
|
|
680
|
-
* Determine migration type for component changes
|
|
681
|
-
*/
|
|
682
|
-
determineMigrationType(fromComponent, toComponent) {
|
|
683
|
-
// Simple heuristic based on change complexity
|
|
684
|
-
const changeCount = toComponent.changes?.length || 0;
|
|
685
|
-
const hasBreakingChanges = toComponent.breaking_changes?.length > 0;
|
|
686
|
-
|
|
687
|
-
if (hasBreakingChanges || changeCount > 10) {
|
|
688
|
-
return 'manual';
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
return 'automatic';
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
/**
|
|
695
|
-
* Generate migration guidance for manual changes
|
|
696
|
-
*/
|
|
697
|
-
generateMigrationGuidance(fromComponent, toComponent) {
|
|
698
|
-
const guidance = [];
|
|
699
|
-
|
|
700
|
-
if (toComponent.breaking_changes?.length > 0) {
|
|
701
|
-
guidance.push('This component has breaking changes that require manual review.');
|
|
702
|
-
guidance.push('Review the following breaking changes:');
|
|
703
|
-
toComponent.breaking_changes.forEach(change => {
|
|
704
|
-
guidance.push(`- ${change}`);
|
|
705
|
-
});
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
if (toComponent.changes?.length > 10) {
|
|
709
|
-
guidance.push('This component has extensive changes.');
|
|
710
|
-
guidance.push('Carefully review all modifications before applying.');
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
guidance.push('Test component functionality after migration.');
|
|
714
|
-
|
|
715
|
-
return guidance;
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
/**
|
|
719
|
-
* Get backup targets from changes
|
|
720
|
-
*/
|
|
721
|
-
getBackupTargets(changes) {
|
|
722
|
-
const targets = [];
|
|
723
|
-
|
|
724
|
-
if (changes.files) {
|
|
725
|
-
targets.push(...(changes.files.modified || []).map(f => f.path));
|
|
726
|
-
targets.push(...(changes.files.moved || []).map(f => f.from));
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
return [...new Set(targets)];
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
/**
|
|
733
|
-
* Initialize migration templates
|
|
734
|
-
*/
|
|
735
|
-
initializeMigrationTemplates() {
|
|
736
|
-
return {
|
|
737
|
-
file_operations: {
|
|
738
|
-
create_file: {
|
|
739
|
-
description: 'Create new file from template or content',
|
|
740
|
-
parameters: ['target', 'content', 'template'],
|
|
741
|
-
rollback: 'delete_file',
|
|
742
|
-
},
|
|
743
|
-
update_file: {
|
|
744
|
-
description: 'Update existing file with changes',
|
|
745
|
-
parameters: ['target', 'changes', 'backup_original'],
|
|
746
|
-
rollback: 'restore_backup',
|
|
747
|
-
},
|
|
748
|
-
move_file: {
|
|
749
|
-
description: 'Move or rename file',
|
|
750
|
-
parameters: ['source', 'target', 'update_references'],
|
|
751
|
-
rollback: 'move_file_reverse',
|
|
752
|
-
},
|
|
753
|
-
archive_file: {
|
|
754
|
-
description: 'Archive file to deprecated location',
|
|
755
|
-
parameters: ['target', 'archive_location'],
|
|
756
|
-
rollback: 'restore_file',
|
|
757
|
-
},
|
|
758
|
-
},
|
|
759
|
-
dependency_operations: {
|
|
760
|
-
install_dependency: {
|
|
761
|
-
description: 'Install new npm dependency',
|
|
762
|
-
parameters: ['package', 'version', 'dev'],
|
|
763
|
-
rollback: 'uninstall_dependency',
|
|
764
|
-
},
|
|
765
|
-
update_dependency: {
|
|
766
|
-
description: 'Update existing dependency',
|
|
767
|
-
parameters: ['package', 'from_version', 'to_version'],
|
|
768
|
-
rollback: 'downgrade_dependency',
|
|
769
|
-
},
|
|
770
|
-
remove_dependency: {
|
|
771
|
-
description: 'Remove deprecated dependency',
|
|
772
|
-
parameters: ['package', 'replacement'],
|
|
773
|
-
rollback: 'reinstall_dependency',
|
|
774
|
-
},
|
|
775
|
-
},
|
|
776
|
-
};
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
module.exports = MigrationGenerator;
|