aios-core 2.1.5 → 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-brownfield.md +456 -0
- 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 +440 -0
- 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/documentation-integrity/brownfield-analyzer.js +501 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +368 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +308 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +331 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +312 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +74 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +389 -0
- package/.aios-core/infrastructure/scripts/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/core-config/core-config-brownfield.tmpl.yaml +176 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +127 -0
- package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -109
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -0
- package/.aios-core/infrastructure/templates/project-docs/coding-standards-tmpl.md +346 -0
- package/.aios-core/infrastructure/templates/project-docs/source-tree-tmpl.md +177 -0
- package/.aios-core/infrastructure/templates/project-docs/tech-stack-tmpl.md +267 -0
- package/.aios-core/infrastructure/tests/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/src/wizard/wizard.js +185 -34
- package/packages/installer/tests/integration/environment-configuration.test.js +2 -1
- package/packages/installer/tests/integration/wizard-detection.test.js +8 -6
- package/packages/installer/tests/unit/env-template.test.js +11 -10
- 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/development/tasks/validate-structure.md +0 -243
- 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/infrastructure/scripts/source-tree-guardian/index.js +0 -375
- package/.aios-core/infrastructure/scripts/source-tree-guardian/manifest-generator.js +0 -410
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/naming-rules.yaml +0 -285
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/placement-rules.yaml +0 -262
- package/.aios-core/infrastructure/scripts/source-tree-guardian/validator.js +0 -468
- 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
package/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
// AIOS
|
|
2
|
-
declare module '@aios-
|
|
3
|
-
export class AIOS {
|
|
4
|
-
constructor(config?: any);
|
|
5
|
-
initialize(): Promise<AIOS>;
|
|
6
|
-
createAgent(config: any): Promise<any>;
|
|
7
|
-
createTask(taskConfig: any): Promise<any>;
|
|
8
|
-
search(query: string, options?: any): Promise<any[]>;
|
|
9
|
-
healthCheck(): Promise<any>;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export * as core from '@aios-
|
|
13
|
-
export * as memory from '@aios-
|
|
14
|
-
export * as security from '@aios-
|
|
15
|
-
export * as performance from '@aios-
|
|
16
|
-
export * as telemetry from '@aios-
|
|
17
|
-
|
|
18
|
-
export default AIOS;
|
|
1
|
+
// Synkra AIOS - TypeScript Definitions
|
|
2
|
+
declare module '@synkra/aios-core/workspace' {
|
|
3
|
+
export class AIOS {
|
|
4
|
+
constructor(config?: any);
|
|
5
|
+
initialize(): Promise<AIOS>;
|
|
6
|
+
createAgent(config: any): Promise<any>;
|
|
7
|
+
createTask(taskConfig: any): Promise<any>;
|
|
8
|
+
search(query: string, options?: any): Promise<any[]>;
|
|
9
|
+
healthCheck(): Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export * as core from '@synkra/aios-core/core';
|
|
13
|
+
export * as memory from '@synkra/aios-core/memory';
|
|
14
|
+
export * as security from '@synkra/aios-core/security';
|
|
15
|
+
export * as performance from '@synkra/aios-core/performance';
|
|
16
|
+
export * as telemetry from '@synkra/aios-core/telemetry';
|
|
17
|
+
|
|
18
|
+
export default AIOS;
|
|
19
19
|
}
|
package/index.esm.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
// AIOS
|
|
2
|
-
import * as core from '@aios-
|
|
3
|
-
import * as memory from '@aios-
|
|
4
|
-
import * as security from '@aios-
|
|
5
|
-
import * as performance from '@aios-
|
|
6
|
-
import * as telemetry from '@aios-
|
|
7
|
-
|
|
8
|
-
// Re-export the AIOS class from CommonJS version
|
|
9
|
-
import workspace from './index.js';
|
|
10
|
-
const { AIOS } = workspace;
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
AIOS,
|
|
14
|
-
core,
|
|
15
|
-
memory,
|
|
16
|
-
security,
|
|
17
|
-
performance,
|
|
18
|
-
telemetry
|
|
19
|
-
};
|
|
20
|
-
|
|
1
|
+
// Synkra AIOS - ES Module Entry Point
|
|
2
|
+
import * as core from '@synkra/aios-core/core';
|
|
3
|
+
import * as memory from '@synkra/aios-core/memory';
|
|
4
|
+
import * as security from '@synkra/aios-core/security';
|
|
5
|
+
import * as performance from '@synkra/aios-core/performance';
|
|
6
|
+
import * as telemetry from '@synkra/aios-core/telemetry';
|
|
7
|
+
|
|
8
|
+
// Re-export the AIOS class from CommonJS version
|
|
9
|
+
import workspace from './index.js';
|
|
10
|
+
const { AIOS } = workspace;
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
AIOS,
|
|
14
|
+
core,
|
|
15
|
+
memory,
|
|
16
|
+
security,
|
|
17
|
+
performance,
|
|
18
|
+
telemetry
|
|
19
|
+
};
|
|
20
|
+
|
|
21
21
|
export default AIOS;
|
package/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
// AIOS
|
|
2
|
-
const core = require('@aios-
|
|
3
|
-
const memory = require('@aios-
|
|
4
|
-
const security = require('@aios-
|
|
5
|
-
const performance = require('@aios-
|
|
6
|
-
const telemetry = require('@aios-
|
|
1
|
+
// Synkra AIOS - Complete Framework Entry Point
|
|
2
|
+
const core = require('@synkra/aios-core/core');
|
|
3
|
+
const memory = require('@synkra/aios-core/memory');
|
|
4
|
+
const security = require('@synkra/aios-core/security');
|
|
5
|
+
const performance = require('@synkra/aios-core/performance');
|
|
6
|
+
const telemetry = require('@synkra/aios-core/telemetry');
|
|
7
7
|
|
|
8
8
|
// Main AIOS class that orchestrates all components
|
|
9
9
|
class AIOS {
|
package/package.json
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aios-core",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "AIOS: AI-Orchestrated System for Full Stack Development - Core Framework",
|
|
3
|
+
"version": "2.2.0",
|
|
4
|
+
"description": "Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.esm.js",
|
|
7
7
|
"types": "index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"aios": "
|
|
10
|
-
"aios-core": "
|
|
11
|
-
"aios-
|
|
12
|
-
"aios-fullstack-minimal": "./bin/aios-minimal.js",
|
|
13
|
-
"aios-minimal": "./bin/aios-minimal.js"
|
|
9
|
+
"aios": "bin/aios.js",
|
|
10
|
+
"aios-core": "bin/aios.js",
|
|
11
|
+
"aios-minimal": "bin/aios-minimal.js"
|
|
14
12
|
},
|
|
15
13
|
"preferGlobal": false,
|
|
16
14
|
"workspaces": [
|
|
@@ -33,7 +31,7 @@
|
|
|
33
31
|
".claude/CLAUDE.md",
|
|
34
32
|
".claude/rules/",
|
|
35
33
|
"common/",
|
|
36
|
-
"
|
|
34
|
+
"squads/",
|
|
37
35
|
"index.js",
|
|
38
36
|
"index.esm.js",
|
|
39
37
|
"index.d.ts",
|
|
@@ -119,7 +117,7 @@
|
|
|
119
117
|
"vite-style",
|
|
120
118
|
"automation"
|
|
121
119
|
],
|
|
122
|
-
"author": "AIOS
|
|
120
|
+
"author": "Synkra AIOS Team",
|
|
123
121
|
"license": "MIT",
|
|
124
122
|
"repository": {
|
|
125
123
|
"type": "git",
|
|
@@ -146,7 +144,7 @@
|
|
|
146
144
|
"jest": "^30.2.0",
|
|
147
145
|
"lint-staged": "^16.1.1",
|
|
148
146
|
"prettier": "^3.5.3",
|
|
149
|
-
"semantic-release": "^
|
|
147
|
+
"semantic-release": "^25.0.2",
|
|
150
148
|
"typescript": "^5.9.3",
|
|
151
149
|
"yaml-lint": "^1.7.0"
|
|
152
150
|
},
|
|
@@ -7,6 +7,29 @@
|
|
|
7
7
|
* @module env-template
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
const path = require('path');
|
|
11
|
+
const fs = require('fs');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Get the current AIOS version from package.json
|
|
15
|
+
* @returns {string} The version string
|
|
16
|
+
*/
|
|
17
|
+
function getAiosVersion() {
|
|
18
|
+
try {
|
|
19
|
+
// Try to find the root package.json
|
|
20
|
+
const rootPkgPath = path.resolve(__dirname, '../../../../package.json');
|
|
21
|
+
if (fs.existsSync(rootPkgPath)) {
|
|
22
|
+
const pkg = JSON.parse(fs.readFileSync(rootPkgPath, 'utf8'));
|
|
23
|
+
return pkg.version || '2.2.0';
|
|
24
|
+
}
|
|
25
|
+
} catch {
|
|
26
|
+
// Ignore errors
|
|
27
|
+
}
|
|
28
|
+
return '2.2.0';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const AIOS_VERSION = getAiosVersion();
|
|
32
|
+
|
|
10
33
|
/**
|
|
11
34
|
* Generate .env file content
|
|
12
35
|
*
|
|
@@ -24,7 +47,7 @@
|
|
|
24
47
|
*/
|
|
25
48
|
function generateEnvContent(apiKeys = {}) {
|
|
26
49
|
const content = `# ============================================
|
|
27
|
-
# AIOS
|
|
50
|
+
# Synkra AIOS Environment Configuration
|
|
28
51
|
# ============================================
|
|
29
52
|
# Generated by AIOS Installer
|
|
30
53
|
# DO NOT commit this file - it contains sensitive credentials
|
|
@@ -118,7 +141,7 @@ VERCEL_TOKEN=
|
|
|
118
141
|
# AIOS Core Configuration
|
|
119
142
|
# --------------------------------------------
|
|
120
143
|
NODE_ENV=development
|
|
121
|
-
AIOS_VERSION
|
|
144
|
+
AIOS_VERSION=${AIOS_VERSION}
|
|
122
145
|
|
|
123
146
|
# --------------------------------------------
|
|
124
147
|
# Custom Configuration
|
|
@@ -136,7 +159,7 @@ AIOS_VERSION=2.1.5
|
|
|
136
159
|
*/
|
|
137
160
|
function generateEnvExample() {
|
|
138
161
|
const content = `# ============================================
|
|
139
|
-
# AIOS
|
|
162
|
+
# Synkra AIOS Environment Configuration
|
|
140
163
|
# ============================================
|
|
141
164
|
# Copy this file to .env and fill in your actual values
|
|
142
165
|
# DO NOT commit .env with real credentials
|
|
@@ -230,7 +253,7 @@ VERCEL_TOKEN=
|
|
|
230
253
|
# AIOS Core Configuration
|
|
231
254
|
# --------------------------------------------
|
|
232
255
|
NODE_ENV=development
|
|
233
|
-
AIOS_VERSION
|
|
256
|
+
AIOS_VERSION=${AIOS_VERSION}
|
|
234
257
|
|
|
235
258
|
# --------------------------------------------
|
|
236
259
|
# Custom Configuration
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Detects the type of project in the current directory
|
|
6
|
-
*
|
|
7
|
-
* Detection Priority Order:
|
|
8
|
-
* 1. EXISTING_AIOS - .aios-core/ directory exists
|
|
9
|
-
* 2. GREENFIELD - directory is empty
|
|
10
|
-
* 3. BROWNFIELD - package.json OR .git exists
|
|
11
|
-
* 4. UNKNOWN - directory has files but no recognized markers
|
|
12
|
-
*
|
|
13
|
-
* @param {string} targetDir - Directory to analyze (defaults to process.cwd())
|
|
14
|
-
* @returns {string} 'GREENFIELD' | 'BROWNFIELD' | 'EXISTING_AIOS' | 'UNKNOWN'
|
|
15
|
-
* @throws {Error} If directory cannot be accessed
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* // Detect current directory
|
|
19
|
-
* const type = detectProjectType();
|
|
20
|
-
* console.log(type); // 'GREENFIELD'
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* // Detect specific directory
|
|
24
|
-
* const type = detectProjectType('/path/to/project');
|
|
25
|
-
* console.log(type); // 'BROWNFIELD'
|
|
26
|
-
*/
|
|
27
|
-
function detectProjectType(targetDir = process.cwd()) {
|
|
28
|
-
try {
|
|
29
|
-
// Validate targetDir parameter
|
|
30
|
-
if (!targetDir || typeof targetDir !== 'string') {
|
|
31
|
-
throw new Error('Invalid targetDir parameter: must be a non-empty string');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Normalize path for cross-platform compatibility
|
|
35
|
-
const normalizedDir = path.resolve(targetDir);
|
|
36
|
-
|
|
37
|
-
// Check if directory exists before attempting to read
|
|
38
|
-
if (!fs.existsSync(normalizedDir)) {
|
|
39
|
-
throw new Error(`Directory does not exist: ${normalizedDir}`);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Check for AIOS installation markers (use path.join for security)
|
|
43
|
-
const hasAiosCore = fs.existsSync(path.join(normalizedDir, '.aios-core'));
|
|
44
|
-
|
|
45
|
-
// If AIOS already installed, return immediately (highest priority)
|
|
46
|
-
if (hasAiosCore) {
|
|
47
|
-
return 'EXISTING_AIOS';
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Check directory contents
|
|
51
|
-
const dirContents = fs.readdirSync(normalizedDir);
|
|
52
|
-
const isEmpty = dirContents.length === 0;
|
|
53
|
-
|
|
54
|
-
// Empty directory = greenfield (second priority)
|
|
55
|
-
if (isEmpty) {
|
|
56
|
-
return 'GREENFIELD';
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Check for project markers (third priority)
|
|
60
|
-
const hasPackageJson = fs.existsSync(path.join(normalizedDir, 'package.json'));
|
|
61
|
-
const hasGit = fs.existsSync(path.join(normalizedDir, '.git'));
|
|
62
|
-
|
|
63
|
-
// Existing project markers = brownfield
|
|
64
|
-
if (hasPackageJson || hasGit) {
|
|
65
|
-
return 'BROWNFIELD';
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Directory has files but no recognized markers = unknown
|
|
69
|
-
return 'UNKNOWN';
|
|
70
|
-
|
|
71
|
-
} catch (error) {
|
|
72
|
-
// Log error with context for debugging
|
|
73
|
-
console.error(`[detect-project-type] Error detecting project type in '${targetDir}': ${error.message}`);
|
|
74
|
-
|
|
75
|
-
// Re-throw with more context for caller to handle
|
|
76
|
-
throw new Error(`Failed to detect project type: ${error.message}`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
module.exports = { detectProjectType };
|
|
81
|
-
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Detects the type of project in the current directory
|
|
6
|
+
*
|
|
7
|
+
* Detection Priority Order:
|
|
8
|
+
* 1. EXISTING_AIOS - .aios-core/ directory exists
|
|
9
|
+
* 2. GREENFIELD - directory is empty
|
|
10
|
+
* 3. BROWNFIELD - package.json OR .git exists
|
|
11
|
+
* 4. UNKNOWN - directory has files but no recognized markers
|
|
12
|
+
*
|
|
13
|
+
* @param {string} targetDir - Directory to analyze (defaults to process.cwd())
|
|
14
|
+
* @returns {string} 'GREENFIELD' | 'BROWNFIELD' | 'EXISTING_AIOS' | 'UNKNOWN'
|
|
15
|
+
* @throws {Error} If directory cannot be accessed
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Detect current directory
|
|
19
|
+
* const type = detectProjectType();
|
|
20
|
+
* console.log(type); // 'GREENFIELD'
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Detect specific directory
|
|
24
|
+
* const type = detectProjectType('/path/to/project');
|
|
25
|
+
* console.log(type); // 'BROWNFIELD'
|
|
26
|
+
*/
|
|
27
|
+
function detectProjectType(targetDir = process.cwd()) {
|
|
28
|
+
try {
|
|
29
|
+
// Validate targetDir parameter
|
|
30
|
+
if (!targetDir || typeof targetDir !== 'string') {
|
|
31
|
+
throw new Error('Invalid targetDir parameter: must be a non-empty string');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Normalize path for cross-platform compatibility
|
|
35
|
+
const normalizedDir = path.resolve(targetDir);
|
|
36
|
+
|
|
37
|
+
// Check if directory exists before attempting to read
|
|
38
|
+
if (!fs.existsSync(normalizedDir)) {
|
|
39
|
+
throw new Error(`Directory does not exist: ${normalizedDir}`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Check for AIOS installation markers (use path.join for security)
|
|
43
|
+
const hasAiosCore = fs.existsSync(path.join(normalizedDir, '.aios-core'));
|
|
44
|
+
|
|
45
|
+
// If AIOS already installed, return immediately (highest priority)
|
|
46
|
+
if (hasAiosCore) {
|
|
47
|
+
return 'EXISTING_AIOS';
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check directory contents
|
|
51
|
+
const dirContents = fs.readdirSync(normalizedDir);
|
|
52
|
+
const isEmpty = dirContents.length === 0;
|
|
53
|
+
|
|
54
|
+
// Empty directory = greenfield (second priority)
|
|
55
|
+
if (isEmpty) {
|
|
56
|
+
return 'GREENFIELD';
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Check for project markers (third priority)
|
|
60
|
+
const hasPackageJson = fs.existsSync(path.join(normalizedDir, 'package.json'));
|
|
61
|
+
const hasGit = fs.existsSync(path.join(normalizedDir, '.git'));
|
|
62
|
+
|
|
63
|
+
// Existing project markers = brownfield
|
|
64
|
+
if (hasPackageJson || hasGit) {
|
|
65
|
+
return 'BROWNFIELD';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Directory has files but no recognized markers = unknown
|
|
69
|
+
return 'UNKNOWN';
|
|
70
|
+
|
|
71
|
+
} catch (error) {
|
|
72
|
+
// Log error with context for debugging
|
|
73
|
+
console.error(`[detect-project-type] Error detecting project type in '${targetDir}': ${error.message}`);
|
|
74
|
+
|
|
75
|
+
// Re-throw with more context for caller to handle
|
|
76
|
+
throw new Error(`Failed to detect project type: ${error.message}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
module.exports = { detectProjectType };
|
|
81
|
+
|
|
@@ -1,46 +1,70 @@
|
|
|
1
1
|
const { detectProjectType } = require('../detection/detect-project-type');
|
|
2
|
+
const {
|
|
3
|
+
detectInstallationMode,
|
|
4
|
+
getModeOptions,
|
|
5
|
+
validateModeSelection,
|
|
6
|
+
InstallationMode,
|
|
7
|
+
} = require('../../../../.aios-core/infrastructure/scripts/documentation-integrity/mode-detector');
|
|
2
8
|
|
|
3
9
|
/**
|
|
4
10
|
* Interactive Wizard for AIOS Installation
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* Supports three installation modes:
|
|
13
|
+
* - GREENFIELD: New project - generates all docs and config
|
|
14
|
+
* - BROWNFIELD: Existing project - analyzes and adapts
|
|
15
|
+
* - FRAMEWORK_DEV: Contributing to aios-core itself
|
|
16
|
+
*
|
|
10
17
|
* @module wizard
|
|
18
|
+
* @version 2.0.0
|
|
19
|
+
* @story 6.9
|
|
11
20
|
*/
|
|
12
21
|
|
|
13
22
|
/**
|
|
14
23
|
* Run the interactive installer wizard
|
|
15
|
-
*
|
|
24
|
+
*
|
|
16
25
|
* @param {Object} options - Wizard options
|
|
17
26
|
* @param {string} options.targetDir - Target directory for installation
|
|
27
|
+
* @param {string} options.mode - Pre-selected mode (skip detection)
|
|
18
28
|
* @returns {Promise<Object>} Installation configuration
|
|
19
29
|
*/
|
|
20
30
|
async function runWizard(options = {}) {
|
|
21
31
|
const targetDir = options.targetDir || process.cwd();
|
|
22
|
-
|
|
32
|
+
|
|
23
33
|
try {
|
|
24
|
-
// Step 1: Welcome screen
|
|
34
|
+
// Step 1: Welcome screen
|
|
25
35
|
console.log('🚀 Welcome to AIOS Installer\n');
|
|
26
|
-
|
|
27
|
-
// Step 2: Detect
|
|
28
|
-
console.log('📊
|
|
29
|
-
const
|
|
30
|
-
console.log(`✅ Detected: ${
|
|
31
|
-
|
|
32
|
-
// Step 3:
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
// Step 4:
|
|
36
|
+
|
|
37
|
+
// Step 2: Detect installation mode (Story 6.9)
|
|
38
|
+
console.log('📊 Analyzing project directory...');
|
|
39
|
+
const detected = detectInstallationMode(targetDir);
|
|
40
|
+
console.log(`✅ Detected: ${detected.mode} (${detected.reason})\n`);
|
|
41
|
+
|
|
42
|
+
// Step 3: Select installation mode (with user override)
|
|
43
|
+
const selectedMode = options.mode || (await selectInstallationMode(detected));
|
|
44
|
+
|
|
45
|
+
// Step 4: Validate selection
|
|
46
|
+
const validation = validateModeSelection(selectedMode, detected);
|
|
47
|
+
if (validation.warnings.length > 0) {
|
|
48
|
+
console.log('\n⚠️ Warnings:');
|
|
49
|
+
validation.warnings.forEach((w) => console.log(` - ${w}`));
|
|
50
|
+
console.log('');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Step 5: Mode-specific configuration
|
|
54
|
+
const modeConfig = await configureModeSpecific(selectedMode, targetDir, detected);
|
|
55
|
+
|
|
56
|
+
// Step 6: Continue with installation (Stories 1.4-1.8)
|
|
36
57
|
// - IDE Selection (Story 1.4)
|
|
37
58
|
// - MCP Installation (Story 1.5)
|
|
38
59
|
// - Environment Config (Story 1.6)
|
|
39
60
|
// - Validation (Story 1.8)
|
|
40
|
-
|
|
61
|
+
|
|
41
62
|
return {
|
|
42
|
-
projectType:
|
|
63
|
+
projectType: detected.legacyType, // Backward compatibility
|
|
64
|
+
installationMode: selectedMode,
|
|
43
65
|
targetDir,
|
|
66
|
+
detected,
|
|
67
|
+
modeConfig,
|
|
44
68
|
// Other configuration will be added by downstream stories
|
|
45
69
|
};
|
|
46
70
|
} catch (error) {
|
|
@@ -49,29 +73,152 @@ async function runWizard(options = {}) {
|
|
|
49
73
|
}
|
|
50
74
|
}
|
|
51
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Select installation mode with user input
|
|
78
|
+
*
|
|
79
|
+
* @param {Object} detected - Detection result from mode detector
|
|
80
|
+
* @returns {Promise<string>} Selected installation mode
|
|
81
|
+
*/
|
|
82
|
+
async function selectInstallationMode(detected) {
|
|
83
|
+
const options = getModeOptions(detected);
|
|
84
|
+
|
|
85
|
+
console.log('Select installation type:\n');
|
|
86
|
+
options.forEach((opt, index) => {
|
|
87
|
+
const marker = opt.value === detected.mode ? '→' : ' ';
|
|
88
|
+
console.log(`${marker} ${index + 1}. ${opt.label}`);
|
|
89
|
+
console.log(` ${opt.hint}\n`);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// Stub: In real implementation, use @clack/prompts select()
|
|
93
|
+
// For now, return detected mode or first option
|
|
94
|
+
console.log(`(Using detected mode: ${detected.mode})`);
|
|
95
|
+
console.log('(Interactive selection via @clack/prompts in Story 1.2)\n');
|
|
96
|
+
|
|
97
|
+
return detected.mode !== InstallationMode.UNKNOWN ? detected.mode : InstallationMode.GREENFIELD;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Configure mode-specific settings
|
|
102
|
+
*
|
|
103
|
+
* @param {string} mode - Selected installation mode
|
|
104
|
+
* @param {string} targetDir - Target directory
|
|
105
|
+
* @param {Object} detected - Detection result
|
|
106
|
+
* @returns {Promise<Object>} Mode-specific configuration
|
|
107
|
+
*/
|
|
108
|
+
async function configureModeSpecific(mode, _targetDir, _detected) {
|
|
109
|
+
const config = {
|
|
110
|
+
mode,
|
|
111
|
+
generateDocs: true,
|
|
112
|
+
generateConfig: true,
|
|
113
|
+
generateGitignore: true,
|
|
114
|
+
runSetupGithub: false,
|
|
115
|
+
deployment: null,
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
switch (mode) {
|
|
119
|
+
case InstallationMode.FRAMEWORK_DEV:
|
|
120
|
+
// Framework development - skip project setup
|
|
121
|
+
console.log('🔧 Framework Development Mode');
|
|
122
|
+
console.log(' → Using existing framework standards');
|
|
123
|
+
console.log(' → Skipping project documentation generation');
|
|
124
|
+
console.log(' → Skipping infrastructure setup\n');
|
|
125
|
+
config.generateDocs = false;
|
|
126
|
+
config.generateConfig = false;
|
|
127
|
+
config.generateGitignore = false;
|
|
128
|
+
break;
|
|
129
|
+
|
|
130
|
+
case InstallationMode.GREENFIELD:
|
|
131
|
+
// New project - full scaffolding
|
|
132
|
+
console.log('🆕 Greenfield Mode');
|
|
133
|
+
console.log(' → Will generate project documentation');
|
|
134
|
+
console.log(' → Will create project-specific core-config');
|
|
135
|
+
console.log(' → Will generate .gitignore based on tech stack');
|
|
136
|
+
console.log(' → Will offer *setup-github for infrastructure\n');
|
|
137
|
+
config.runSetupGithub = true;
|
|
138
|
+
// Deployment config will be elicited in Phase 3
|
|
139
|
+
config.deployment = await elicitDeploymentConfig();
|
|
140
|
+
break;
|
|
141
|
+
|
|
142
|
+
case InstallationMode.BROWNFIELD:
|
|
143
|
+
// Existing project - analyze and adapt
|
|
144
|
+
console.log('📂 Brownfield Mode');
|
|
145
|
+
console.log(' → Will analyze existing source tree');
|
|
146
|
+
console.log(' → Will detect existing coding standards');
|
|
147
|
+
console.log(' → Will merge with existing .gitignore');
|
|
148
|
+
console.log(' → Will analyze existing GitHub workflows\n');
|
|
149
|
+
// Deployment config will be elicited based on analysis in Phase 3
|
|
150
|
+
config.deployment = await elicitDeploymentConfig();
|
|
151
|
+
break;
|
|
152
|
+
|
|
153
|
+
default:
|
|
154
|
+
console.log('❓ Unknown mode - using greenfield defaults\n');
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return config;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Elicit deployment configuration from user
|
|
162
|
+
* Implements Task 3.3 from Story 6.9
|
|
163
|
+
*
|
|
164
|
+
* @returns {Promise<Object>} Deployment configuration
|
|
165
|
+
*/
|
|
166
|
+
async function elicitDeploymentConfig() {
|
|
167
|
+
// Stub implementation - will be fully implemented in Phase 3
|
|
168
|
+
console.log('📦 Deployment Configuration');
|
|
169
|
+
console.log(' (Full elicitation will be implemented in Phase 3)\n');
|
|
170
|
+
|
|
171
|
+
// Return default staging-first workflow
|
|
172
|
+
return {
|
|
173
|
+
workflow: 'staging-first',
|
|
174
|
+
branches: {
|
|
175
|
+
staging_targets: ['feature/*', 'fix/*', 'docs/*', 'chore/*', 'refactor/*', 'test/*'],
|
|
176
|
+
production_targets: ['hotfix/*'],
|
|
177
|
+
staging_branch: 'staging',
|
|
178
|
+
production_branch: 'main',
|
|
179
|
+
default_target: 'staging',
|
|
180
|
+
},
|
|
181
|
+
environments: {
|
|
182
|
+
staging: {
|
|
183
|
+
name: 'Staging',
|
|
184
|
+
auto_deploy: true,
|
|
185
|
+
platform: null, // To be detected/elicited
|
|
186
|
+
},
|
|
187
|
+
production: {
|
|
188
|
+
name: 'Production',
|
|
189
|
+
auto_deploy: true,
|
|
190
|
+
platform: null,
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
quality_gates: {
|
|
194
|
+
lint: true,
|
|
195
|
+
typecheck: true,
|
|
196
|
+
tests: true,
|
|
197
|
+
security_scan: false,
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
|
|
52
202
|
/**
|
|
53
203
|
* Confirm project type with user or allow override
|
|
54
|
-
*
|
|
204
|
+
* @deprecated Use selectInstallationMode instead
|
|
205
|
+
*
|
|
55
206
|
* @param {string} detectedType - Detected project type
|
|
56
207
|
* @returns {Promise<string>} Confirmed project type
|
|
57
208
|
*/
|
|
58
209
|
async function confirmProjectType(detectedType) {
|
|
59
|
-
//
|
|
60
|
-
// In real implementation, this would use @clack/prompts to ask user
|
|
61
|
-
|
|
210
|
+
// Kept for backward compatibility
|
|
62
211
|
const typeDescriptions = {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
212
|
+
GREENFIELD: 'New project - AIOS will create complete structure',
|
|
213
|
+
BROWNFIELD: 'Existing project - AIOS will integrate with current setup',
|
|
214
|
+
EXISTING_AIOS: 'AIOS already installed - Would you like to update or reinstall?',
|
|
215
|
+
UNKNOWN: 'Unknown project type - Manual selection required',
|
|
67
216
|
};
|
|
68
|
-
|
|
217
|
+
|
|
69
218
|
console.log(`Project Type: ${detectedType}`);
|
|
70
219
|
console.log(`Description: ${typeDescriptions[detectedType]}`);
|
|
71
|
-
console.log('(
|
|
72
|
-
|
|
73
|
-
// For now, return the detected type
|
|
74
|
-
// Real implementation would prompt user to confirm or override
|
|
220
|
+
console.log('(Use selectInstallationMode for new three-mode selection)\n');
|
|
221
|
+
|
|
75
222
|
return detectedType;
|
|
76
223
|
}
|
|
77
224
|
|
|
@@ -87,7 +234,11 @@ function getProjectType(targetDir) {
|
|
|
87
234
|
|
|
88
235
|
module.exports = {
|
|
89
236
|
runWizard,
|
|
90
|
-
|
|
237
|
+
selectInstallationMode,
|
|
238
|
+
configureModeSpecific,
|
|
239
|
+
elicitDeploymentConfig,
|
|
240
|
+
confirmProjectType, // Deprecated - kept for backward compatibility
|
|
91
241
|
getProjectType,
|
|
242
|
+
InstallationMode,
|
|
92
243
|
};
|
|
93
244
|
|
|
@@ -9,6 +9,7 @@ const fs = require('fs-extra');
|
|
|
9
9
|
const path = require('path');
|
|
10
10
|
const os = require('os');
|
|
11
11
|
const { configureEnvironment, updateGitignore } = require('../../src/config/configure-environment');
|
|
12
|
+
const pkg = require('../../../../package.json');
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Cleanup helper with retry logic for flaky file system operations
|
|
@@ -72,7 +73,7 @@ describe('Environment Configuration Integration', () => {
|
|
|
72
73
|
|
|
73
74
|
const content = await fs.readFile(envPath, 'utf8');
|
|
74
75
|
expect(content).toContain('NODE_ENV=development');
|
|
75
|
-
expect(content).toContain(
|
|
76
|
+
expect(content).toContain(`AIOS_VERSION=${pkg.version}`);
|
|
76
77
|
});
|
|
77
78
|
|
|
78
79
|
it('should create .env.example file', async () => {
|